728x90
▶ database schema
- data model 을 바탕으로 database의 구조를 기술(description) 한 것.
- schema는 database를 설계할 때 정해지며 한번 정해진 후에는 자주 바뀌지 않음.
데이터 베이스의 스키마를 보면 이 데이터의 구조가 어떤 식으로 되어있는지 큰 그림을 이해할 수 있음.
▶ database state
- database에 있는 실제 데이터는 꽤 자주 바뀔 수 있음.
- 특정시점에서 database에 있는 데이터를 database state 혹은 snapshot이라고 함.
- 혹은 database에 있는 현재 instancse의 집합이라고도 함.
초록색이 database 또는 snapshot임.
▶three-schema architecture
- database system을 구축하는 architecture 중의 하나(대부분 three-schema architecture를 따라감.)
- user application 으로부터 물리적인 database를 분리시키는 목적
- 세가지 level이 존재하며 각각의 level마다schema가 정의되어 있음.
- external(or view) schemas at external level
- conceptual schemas at conceptual level
- internal schemas at internal level
▷ internal schema
- 물리적으로 데이터가 어떻게 저장되는지 physicals data model을 통해 표현
- database와 가장 가까이 있기 때문에
- data storage, data structure, access path등등 실체가 있는 내용 기술
▷ external schema
- user와 가장 가까이 있는 schema
- 따라서 external views, user views 라고도 불림
- 각각의 유저들이 필요로 하는 데이터만 표현
- 그 외 알려줄 필요하 없는 데이터는 숨김
- logical data model을 통해 표현함.
- 원래 데이터베이스의 초창기 아키텍쳐에는 internal과 external 스키마 밖에 없었는데, 각각의 유저마다 필요로 하는 데이터가 달라지다보니까 중복되는 데이터가 많아짐. 그래서 관리도 힘들고 그래서 conceptual schema가 나타나게됨.
▷ conceptual schema
- 전체 database에 대한 구조를 기술
- 물리적인 저장 구조에 관한 내용은 숨겼다.
- entities, data types, relationships, user operations, constraints에 집중
- logical data model을 통해 기술한다.
▷정리
Three-schema architecture
- 각 레벨을 독립시켜서 어느 레벨에서의 변화가 상위 레벨에 영향을 주지 않기 위함
- 대부분의 DBMS가 three level을 완벽하게 혹은 명시적으로 나누지는 않는다.
- 데이터가 존재하는 곳은 internal level이다.
▶ database language
▷data definition language(DDL)
conceptual schema를 정의하기 위해 사용되는 언어
▷ storage definition language(SDL)
- internal schema를 정의하는 용도로 사용되는 언어
- 요즘은, 특히 relational DBMS에서는 SDL이 거의 없고 파라미터 등의 설정으로 대체됨.
▷ view definition language(VDL)
- external schema를 정의하기 위해 사용되는 언어
- 대부분의 DBMS에서는 DDL이 VDL 역할까지 수행
- 그래서 결국 definition 언어로는 DDL이 모든걸 커버한다고 해도 됨
▷ data manipulation language(DML)
- database에 있는 data를 활용하기 위한 언어
- data추가, 삭제, 수정, 검색 등등의 기능을 제공하는 언어
▶ 그래서,, 통합된 언어
- 오늘날의 DBMS는 DML, VDL, DDL이 따로 존재하기 보다는 통합된 언어로 존재함.
- 대표적인 예 : relational database language : SQL
728x90
'학과 공부 > 데이터베이스' 카테고리의 다른 글
[Database]Keys, Constraints 알아보기 (0) | 2024.02.28 |
---|---|
[Database]relational database (0) | 2024.02.26 |
[Database]database의 기본 개념 (1) | 2024.02.24 |