데이터베이스 관리 시스템(DBMS)
파일 시스템:
- 데이터를 파일로 관리하기 위해 파일을 생성, 수정, 삭제, 검색하는 기능을 제공하는 소프트웨어
- 응용프로그램마다 필요한데이터를 별도의 파일로 관리함
문제점:
- 같은 내용의 데이터가 여러 파일에 중복저장됨
- 저장공간의 낭비+ 데이터의 일관성, 무결성을 유지하기 어려움(일관성 무결성은 추후 작성)
가장큰 문제점:
데이터 종속성
응용프로그램이 데이터 파일에 종속적!
사용하는 파일의 구조가 변경된다면 응용프로그램또한 변경되야함..
+ 데이터파일에 대한 동시공유, 보안, 회복(복구, 파악)이 쉽지않음
+그걸 고려하는 프로그램을 만든다면? => 응용프로그램 개발이 쉽지않음
데이터베이스 관리시스템 (DBMS)
- 아 그걸 관리해주는 소프트웨어 만들어 줄게
주요기능
- 정의 기능: 데이터베이스 구조를 정의하거나 수정할수 있음
- 조작 기능: 데이터를 수정, 삽입, 삭제, 검색 할수 있음
- 제어 기능: 데이터를 항상 정확, 안전하게 유지할수 있음
데이터베이스 발전과정
1세대 : 네트워크(그래프), 계층(트리) 구조로 구성
2세대 : 관계디비 ( SQL) 데이터 베이스를 테이블 형태로 구성
3세대 : 객체지향 디비: 객체지향 즉 클래스에 데이터형태뿐 아니라 "메소드" 존제 => 직렬화(데이터)를 이용해서 객체를 데이터 베이스에 저장 수정 행동 모두 가능
4세대 : 비관계형 데이터베이스
- 비? 아니다 관계형이 아닌 데이터도 포함해주겠다는것
- 확장성이 뛰어남: 빅데이터 시대에 적합함 => 분산시스템을 기반으로 확장하기도 좋다
- 스키마가 존제하지 않거나 흠흠
- 복제와 샤딩 기법을 사용함으로 고가용성을 보장: 이건 모두에게 가능한것이지만 그럼에도 불구하고 초기 설계부터 포함되어 고려됨
샤딩? : 서버증설시에 기존의 데이터 베이스를 자근단위로 분할 => 분산시스템에서 자세히 기술할것
데이터 베이스 구조
데이터 베이스 구조
외부 스키마
- DB하나에 여러 외부스키마 존재
- 각 사용자가 생각하는 데이터베이스의 모습에 따라 정의
- -> 논리적 구조가 사용자마다 다름
- 서브 스키마라고도함
개념 스키마
- 데이터 베이스 하나에 개념스키마는 단하나만 존재
- 데이터베이스 전체의 논리적 구조를 정의한것
- 조직 전체의 관점에서 생각하는 데이터베이스의 모습
내부스키마
- 데이터 베이스 하나에 내부스키마는 단하나만 존재
- 데이터베이스가 저장장치에 실제로 저장되는 방법을 정의한것
- 레코드구조, 필드 크기, 레코드 접근경로 등 물리적 저장구조를 정의
데이터 독립성 실현
스키마사이의 대응관계
외부/개념 :
개념/내부
=> 각단계 별로 스키마를 유지하며 스키마 사이의 대응관계를 정의
데이터 독립성
하위스키마를 변경하더라도 상위 스키마와 무관
논리적 데이터 독립성:
개념 스키마가 변경되었어도 외부스키마는 독립
물리적 데이터 독립성:
내부스키마가 변경되었어도 개념스키마는 독립
데이터 사용자:
최종 사용자 - 데이터베이스에 접근하여 조작하는 사람
응용프로그래머 - 데이터 언어를 삽입하여 응용프로그램을 작성하는 사람
데이터베이스관리자 - 데이터베이스 시스템을 운영관리 하는사람 : 데이터 정의어, 제어어를 이용
데이터 언어
데이터 정의어(DDL) : 스키마를 정의하거나 수정, 삭제 :
CREATE TABLE, ALTER TABLE, DROP TABLE
데이터 조작어(DML): 데이터를 추가,삭제, 검색등..:SQL쿼리
데이터 제어어(DCL) : 내부 규칙, 기법을 정의하기 위해 사용
'CS > 데이터베이스' 카테고리의 다른 글
데이터 베이스 기본개념 (0) | 2024.09.23 |
---|