가자미의 개발이야기
[데이터베이스]데이터베이스 시스템의 개념 본문
1. 데이터베이스 시스템
-DBMS(Database Management System) : 사용자와 데이터베이스를 연결시켜주는 소프트웨어
-데이터베이스 : 데이터를 모아둔 토대. 컴퓨터 내부 하드디스크에 저장
-데이터 모델 : 데이터가 저장되는 기법에 대한 논리적인 내용. 데이터가 저장되는 스타일을 나타냄.
2. 데이터베이스 시스템의 발전
실체 시스템 | 파일 시스템 | 데이터베이스 시스템 | 웹 데이터베이스 시스템 |
분산 데이터베이스 시스템 |
1970년대 정보 시스템 없음 수작업 회계 |
1980년대 데이터를 파일 단위로 파일서버에 저장. LAN으로 컴퓨터와 연결. 독립적으로 파일을 다루기 때문에 중복 저장 및 일관성 훼손의 문제. |
DBMS도입, 통합관리. 클라이언트-서버 개념 도입 설계 과정 도입으로 중복을 줄이고 데이터 표준화와 무결성을 유지 |
데이터베이스를 웹에서도 사용할 수 있음 클라이언트=웹서버-DBMS서버로 연결 |
여러 곳에 분산된 DBMS 서버를 연결해 운영하는 시스템. |
3. 데이터베이스 저장
구분 | 파일 시스템 | DBMS |
데이터 정의 및 저장 | 정의 : 응용 프로그램/저장: 파일 시스템 | 정의 : DBMS/저장 : 데이터베이스 |
데이터 접근방법 | 응용 프로그램이 직접 파일에 접근 | 응용 프로그램이 DBMS에 접근을 요청 |
사용 언어 | 자바, c 등.. | 자바, c 등 과 SQL |
CPU/주기억장치 사용 | 적음 | 많음 |
데이터 중복 | 파일 단위로 저장하므로 중복 가능성 높음 | DBMS로 데이터를 공유하기 때문에 낮음 |
데이터 일관성 | 중복 저장으로 일관성 낮음 | 중복 제거로 일관성 높음 |
데이터 독립성 | 데이터 정의와 프로그램의 독립 유지 불가 | 독립유지 가능 |
데이터 관리 기능 | 보통 | 복구, 보안, 동시성 제어 등 을 수행 |
기타 장점 | 별도의 소프트웨어 설치가 필요 x | 데이터 무결성 유지, 데이터 표준 준수 용이 |
4. 데이터베이스 시스템의 구성
a. 데이터베이스 언어(sql)
-데이터 정의어 : DBMS에 저장된 테이블 구조를 정의 (CREATE, ALTER, DROP)
-데이터 조작어 : 데이터를 검색, 삽입, 삭제, 수정하는 데 사용 (SELECT,INSERT, DELETE, UPDATE)
-데이터 제어어 : 데이터 사용 권한을 관리 (GRANT, REVOKE)
b.데이터베이스 사용자
-일반 사용자
-응용 프로그래머 : 일반 사용자가 사용할 수 있도록 프로그램 만듬
-SQL 사용자 : 데이터 모니터링 등
-데이터베이스 관리자 : 데이터베이스 시스템 총괄
c.DBMS
-DML/DDL 컴파일러 : SQL을 변역
-Embedded DML 컴파일러 : 응용 프로그램에 삽입된 SQL을 번역
-질의처리기 : 번역된 SQL을 처리하는 알고리즘
d.데이터 모델
구분 | 장점 | 단점 |
포인터 사용(계층 모델, 네트워크 모델) | 포인터값을 저장하는 방식. 직접 찾아가서 속도는 빠름 |
개발 속도가 느림 |
속성 값 사용(관계 데이터 모델) | 속성값을 데이터에 저장하는 방식. 개념이 쉽고 개발이 빠름 |
직접적인 포인터는 없음. 포인터 방식보다 느림 |
객체식별자 사용(객체 데이터 모델) | 고유 식별자인 object id(oid)를 저장하는 방법. 상속, 캡슐화 등 객체 개념 지원 |
5. 데이터베이스의 개념적 구조
외부 스키마 | 사용자가 보는 데이터 |
개념 스키마 | 전체 데이터 |
내부 스키마 | DBMS가 보는 데이터 |
데이터베이스(물리적 구조) |
a. 외부 단계
-일반 사용자나 응용 프로그래머가 접근
-하나의 논리적인 부분. 여러 개가 있을 수 있음
-서브 스키마라고도 함. 뷰의 개념.
ex. 학교 데이터베이스 일때, 학생처의 학생 정보, 교무처의 수강 정보 등
b. 개념 단계
-전체 데이터베이스의 정의. 하나만 존재.
-저장 장치에 독립적으로 기술.
-데이터와 관게, 제약사항, 무결성에 대한 내용 포함.
ex. 학생 정보, 수강 정보 등이 모두 모인 대학 전체 데이터 베이스
c. 내부 단계
-물리적 저장 장치에 데이터베이스가 실제로 저장되는 방법. 하나만 존재
-인덱스, 레코드 배치 방법, 데이터 압축 등 포함
※매핑 : 각 단계 간 대응 관계를 정의.
-외부/개념 매핑 : 외부 스키마의 데이터가 개념 스키마의 어느 부분에 해당되는지 대응
-개념/내부 매핑 : 개념 스키마의 데이터가 내부 스키마의 물리적 장치 어디에 어떤 방법으로 저장되는지 대응.
※데이터 독립성 :하위 단계의 내용을 추상화하여 상위 단계에 그 세부 사항을 숨김. 한 단계에서 변경에 대해 다른 단계와 상호 간섭이 없도록 하는 것.
-논리적 데이터 독립성 : 외부-개념 사이의 독립성. 개념 스키마가 변경되도 외부 스키마에는 영향 없도록.
-물리적 데이터 독립성 : 개념-내부 사이의 독립성. 저장장치 구조 변경 등 내부 스키마가 변경되도 개념 스키마에 영향 없도록.
'Computer Science > 데이터베이스' 카테고리의 다른 글
[데이터베이스] MySQL의 my.ini 수정 권한이 없다고 나올 때 해결방법. (0) | 2021.02.23 |
---|---|
[데이터베이스] SQL 내장함수 (0) | 2021.02.23 |
[데이터베이스] sql 기초 총정리! (0) | 2021.02.17 |
[데이터베이스] 관계대수 (0) | 2021.02.16 |
[데이터베이스] 관계 데이터 모델 (0) | 2021.02.16 |