정보 시스템
정보와 DBMS
Information = Process(Data)
데이터(D)->처리(DBMS)->정보(I)
DBMS: 데이터를 처리하는 핵심 소프트웨어(처리기) -> 사용자는 처리된 데이터를 보고 정보를 얻을 수 있음
ex) 달리기 기록 데이터를 dbms가 오름차순으로 정렬함 -> 사용자는 누가 제일 빠른지 정보를 얻을 수 있음
데이터베이스: (조직 내에서) 여러 사람들이 공용하기 위해 통합(정리)해 놓은 데이터의 집합/
(조직 내에서) 여러 사람들에게 공유하기 위해 통합(정리)해 놓은 데이터의 집합
ex) 회사의 한 인사부 대리가 인사부 팀원들에게 이번 신입사원들의 데이터를 공유하기 위해 데이터베이스로 만들고 인사부 서버에 저장함
데이터베이스의 구성 요소
개체(Entity): 업무가 다루는 사물(대상) -> 사람,자동차,사물 등등
관계(Relationship): 업무가 다루는 사물들 사이에 존재하는 연관 -> 결혼(남편과 부인),지도(학생과 제자),수강(학생과 교과목) 등등
속성(Attribute): 각 사물이 가지고 있는 상세한 특성 -> 이름, 생년월일, 학번, 학과, 주소 등등
DBMS의 역할
데이터를 효율적으로 관리(조회,수정,삽입,삭제 등)
// 응용 프로그램과 연결해서 사용될 수 있음
Ex) 등록금 관리 프로그램에서 dbms에 명령을 줘서 등록한 학생들의 데이터베이스를 만들 수 있음
데이터베이스 모델
릴레이션[행(튜플)과 열(속성)로 구성된 테이블]:
릴레이션 스키마[테이블의 구조 = 도메인, 속성(필드)의 집합] + 릴레이션 인스턴스[튜플의 집합]
<튜플의 순서는 중요하지 않음>
카디널리티: 튜플의 수
차수: 속성의 수
데이터베이스 표준어: SQL
테이블 생성, 튜플 추가, 삭제, 수정, 조회 등 명령어 제공
트랜잭션: 데이터베이스의 상태를 변화시키기 해서 수행하는 작업의 단위
(작업 단위는 사람이 임의로 정하므로 여러 sql질의어로 구성될 수 있다.)
Ex) 한 트랜잭션: insert+select
데이터 모델링
(Entity-Relatiionshile Diagram)
네모-개체, 타원-속성, 마름모-관계
데이터베이스 설계
사용자의 요구사항으로부터 현실세계를 반영한 데이터베이스의 구조를 도출해 냄
Ex) 학교에서 교수 데이터베이스를 만들기 위해 데이터 모델링을 하고 SQL명령을 이용해서 데이터베이스를 만듦
정보 처리
컴퓨터가 정보를 생성하기 위해 데이터를 처리하는 작업
데이터베이스 시스템
데이터 처리(생성,삭제,검색,변경 등)를 효율적으로 할 수 있는 시스템
정보 시스템
한 기관을 위해 데이터를 수집,조직하고 정보를 생성,분배하는 시스템
ex) ‘인사정보시스템’을 이용하면 신입사원 데이터(부서,업무,성과 등)를 조직할 수 있고 어떤 신입사원이 실적이 가장 좋은지 정보를 생성할 수 있다.
데이터베이스의 데이터
통합된(정리된) 데이터 (최소의 중복 데이터)
저장 데이터 (저장 매체에 저장된 데이터)
운영 데이터 (조직 내에서 고유 기능을 수행하기 위해 필요한 데이터)
공용 데이터 (조직 내에서 여러 사람들이 같이 사용 가능한 데이터)
데이터베이스의 특성
실시간 접근성 (질의에 대한 실시간 처리)
계속적인 변화 (갱신,삽입,삭제가 계속 이루어짐)
동시 공용 (여러 사용자가 동시에 사용)
내용에 의한 참조 (위치나 주소가 아닌 값에 따라 참조)
Ex) 체중이 50-60kg이고 신장이 160-170cm인 학생을 찾아라
지속성 (한 번 만들어진 데이터베이스는 없어지지 않는다)
상호 관련성 (데이터는 서로 관계가 있음)
Ex) 홍길동의 지도 교수는 김철수 교수이다.
데이터베이스의 구조
논리적 구조: 사용자 관점에서 본 데이터의 개념적 구조 (레코드 구조)
물리적 구조: 저장 관점에서 본 데이터의 개념적 구조 (섹터,실린더 등)
3단계 데이터베이스
외부 스키마: 개개 사용자나 응용 프로그래머가 접근하는 데이터베이스를 정의한 것
개념 스키마: 기관적 입장에서 데이터베이스를 정의한 것
내부 스키마: 저장 장치 입장에서 데이터베이스가 저장되는 방법을 명세한 것
외부 스키마(view,서브스키마)를 모아서 하나의 논리적 관계로 만듦 -> 개념 스키마(논리 스키마, 스키마)
스키마는 DDL, DML로 처리 가능
1. 외부 스키마: 개인이나 응용 프로그래머들은 데이터베이스의 모든 내용이 궁금하지 않음. 학생 데이터 베이스에서 (학적과) 혹은 (학생과) 내용만 궁금해서 해당 내용만 접근함
2. 개념 스키마: 데이터베이스 관리 기관 입장에서는 데이터베이스의 모든 내용에 접근해야 됨. 따라서 (학적과),(학생과) 등이 모아진 전체 내용을 접근함
3. 내부 스키마: 저장 장치 입장에서는 [레코드를 접근하는 방법, 할당 공간, 주소(포인터) 등]이 중요함. 데이터베이스가 저장되는 방법이 적힌 파일이 필요함
파일 시스템의 문제점은?
1) 데이터 종속성
: 응용 프로그램과 데이터 사이의 의존 관계 -> 데이터의 구성 방법, 접근 방법 변경 시 관련 응용 프로그램도 변경해야 됨
2) 데이터 중복성
: 한 시스템 내에 내용이 같은 데이터가 중복되게 저장 관리됨
일관성-> 데이터 간의 모순, 불일치 발생 (‘a’데이터를 모두 삭제해야 되는데 중복되서 한 개만 삭제됨)
보안성-> 똑 같은 수준의 보안 유지 어려움
경제성-> 추가적인 공간과 갱신 비용 증가
무결성-> 데이터 정확성 유지 어려움
DBMS
데이터의 종속성과 중복성의 문제를 해결하도록 데이터베이스를 관리하는 시스템 소프트웨어
DBMS를 이용하는 응용 프로그램은 데이터베이스의 생성, 접근 방법, 보안, 물리적 구조 등 자세한 설명 없이 원하는 데이터와 처리 작업만을 DBMS에 요청하면 됨
정의 기능
: 가장 적절한 데이터베이스 구조를 정의할 수 있는 기능
- 빈 테이블 생성, 삭제, 변경 가능
조작 기능
: 사용자와 데이터베이스 사이의 인터페이스를 위한 수단 제공
- 데이터 검색, 삽입,삭제,갱신 기능
제어 기능
: 데이터의 정확성과 보안성을 유지하는 기능, 권한 부여 기능
트랜잭션 완료(commit)
: 트랜잭션에서 변경하려는 내용이 데이터베이스에 완전하게 반영됨
트랜잭션의 철회(rollback)
: 갱신한 사항을 트랜잭션이 수행되기 전의 상태로 되돌림
Grant: 권한 부여
Revoke: 권한 회수
DBMS의 장단점
데이터 독립성
논리적 데이터 독립성
: 데이터베이스의 논리적 구조를 변경시키더라도 기존 응용 프로그램들에 영향을 안 줌
- Students(sid,sname,gpa)가 Snames(sid,name)과 Spas(sid,gpa)로 변경된 경우
- Views(가상 테이블)라는 기능을 이용해서 영향을 안 주는 것
물리적 데이터 독립성
: 데이터베이스의 물리적 구조를 변경시키더라도 기존 응용 프로그램들이나 논리적 구조에 영향을 안 줌
- 물리적으로 파일의 구조가 바뀌거나 인덱스가 바뀌어도 영향 안 받음