코딩공작소
DataModel & DBMS Architecture 본문
Data model <-- DB designer에게 필요!!
- 데이터베이스 구조를 명시하는 개념들의 집합
- 데이터 추상화를 성취하기위한 수단을 제공
- 데이터 모델은 아래의 요소들을 포함한다.
1.DB에 있는 업데이트와 검색을 명시하기위한 기본 작동
2.DB 디자이너가 DB 객체에 허용되는 유효한 작업 집합을 지정할 수 있도록하는 DB application의 동적 측면 또는 동작 (특히 객체 지향 데이터 모델에서)
★Data model 카테고리★ <-- DB Designer가 Data를 DB에 저장할 때 3단계로 저장하는 것!
- High-level or conceptual DM : 모든 정보들의 상관관계를 고려해 정리. 많은 유저들이 데이터를 인지하는 방법과 비슷하다.
- Low-level or physical DM : 하드웨어에 어떻게 기술 되어있는지 어떤 데이터가 컴퓨터 저장 미디어에 저장되어있는지의 디테일을 명시한다.
- Representational DM : implementationDM라고도 불린다. 정보와 정보의 관계를 어떻게 표현할 것인가?? High-low의 중간단계.
<Conceptual DM>
Entity-Relationship DM는 가장 인기많은 Conceptual DM의 한 종류이다.
ER DM :
1.Entity는 real-world 객체나 개념을 대표한다.
2.Attribute는 entity의 몇가지 특성을 대표한다.
3.Relationship은 2또는 3개의 entity의 연관관계를 의미한다. 또한 1개이상의 특성을 명시하기 위한 attribute를 갖는다.
<Representational (Implementation) DM>
Relational DM는 가장 인기 있는 Representational DM의 한 종류이다.
Relational DM는 전통적인 상업의 DBMS들에게서 가장 많이 사용된다.
이전의 Relational DM : 계층구조의 DM, 네트워크 DM
Object-oriented DM : higher-level implementation DM의 새로운 모델, conceptual DM와 비슷하다
<Physical DM>
record formats, record ordering, access paths와 같은 정보를 대표함으로 컴퓨터안에 파일로써 어떤 데이터가 저장되어 있는지 명시한다.
DB schema
- meta data
- DB구조, 데이터 타입, DB 제약조건을 포함
- DB 카탈로그에 저장됨
- DB디자니어가 DDL에 이용해 변형. DML의 업데이트 작동에는 변형되지 않음
- 자주 바뀌면 좋지 않다.
- Define a new DB : DB스키마를 DBMS에 구체화 하는것
- Initial state : 초기데이터가 입력되거나 로드되는 거
- valid state : 스키마에 명시된 구조나 제약조건을 만족하는 DB
- Distinction : DB스키마는 거의 변하지 않는다. <--> DB state는 언제든지 DB가 업데이트 되면 변한다.
Schema 는 intension
State는 extension
3-level architecture --> Data의 추상화, 독립성을 위해 Data를 3단계로 관리함
: 아래의 DBMS특성을 지원하기 위해 고안됐다.
1.프로그램과 데이터 사이의 insulation --> 독립성
2.데이터의 multiple views의 지원
:DBS 조직화를 규정짓기 위해 유용하다. DBMS가 3단계로 data를 관리하기를 권장함. --> 추상화를 제공하기 위해
- Internal level : DB의 physical 저장구조를 규정한다. (복잡한 구조를 갖음)
- Conceptual level : 커뮤니티를 위해 전체 DB구조를 규정한다. (개념적인 것만 모음)
- External or view level : 특정한 유저그룹이 관심있는 DB의 부분을 규정한다. (각각의 유저가 보는 내용)
<Data independence>
:간단히 프로그램-데이터 독립을 의미.
:스키마를 변경하기 위해서 다음 하이레벨의 스키마를 변경시키지 않고 어느 한 레벨의 스키마를 변경할 수 있는 능력
1.Logical data independence : conceptual schema를 변경하는 능력. 관련된 external shema는 변경시키지 않아야 한다.
2.Physical data independence : internal schema를 변경하는 능력. conceptual schema는 변경시키지 않아야 한다.
<DBMS definition and functions>
:사용자가 데이터베이스를 쉽게 작성하고 유지 관리 할 수 있도록 데이터베이스 사용자와 기본 데이터베이스 간의 인터페이스를위한
기본 데이터베이스를 관리하는 프로그램 모음
※주요한 DBMS의 기능
1.Defining a DB(DB design) : 저장된 데이터 타입, 구조, 제약조건들을 구체화한다. Meta Data
2.Constructing the DB : DBMS에 의해 컨트롤된 저장소에 데이터를 저장
3.Manipulating a DB : RW app을 위한 기초DB를 Query and update. Application program은 sending queries를 DBMS에게 보냄으로 DB에 접근한다.
4.Sharing a DB : 동시에 멀티플 뷰를 제공
5.Protection : 비권한자, 고장으로부터 보호
<DB 언어>
1.Data definition language (DDL)
: DBA와 DB디자이너는 conceptual schema를 define하기 위해 DDL을 사용한다.
많은 DBMS안에서 internal external schema(views)를 define하기 위해 이용된다.
DBMS에서, storage definition language(SDL)과 view definition language(VDL)은 define을 위해 사용된다.
SDL는 internal schema를 구체화하고, VDL은 user views/mapping을 conceptual schema에 구체화한다.
2.Data manipulation language(DML)
: retrieval(by query),insertion, deletion,update(by modification)이 DB에 접근하도록 허락
DML명령어는 여러 host 언어안에 내제되어 있을 수 있다.COBOL,C,C++ ,java등..
주로 앱개발자에 의해 사용된다.
interactive user에 의해 직접 DML명령어와는 독립적으로 적용될 수 있다.
3.Nonprocedual query language (선언적, 어떻게가 아닌 무엇을 )
: 복잡한 DB작동을 간결하게 명시화하기 위해 사용된다.
데이터를 어떻게 검색할지보다 어떤 데이터를 검색해야할지 구체화한다.
set-a-time , set-oriented
4.Procedural query language ( 어떻게 )
: 한번에 one record data를 찾는다
Record-at-a-time