Structure(구조), Operation(연산), Constraints(제약조건)를 함유
여기서 구조는 데이터형식(data type), 관계(relationship), 제약조건(constraints)를 명시한다.
연산은 데이터의 수집, 업데이트에 사용되며 '기본 연산'과 '사용자 정의'연산이 있다.
Constructs - Elements (entity + record) + relationship
제약조건은 유효한 데이터들에 대해 반드시 지켜져야 하는 것 들이다.
: 구조에 속해있는 데이터값들 (ex. Student table의 데이터 A)
: 쉽게 말해서 데이터베이스의 구조를 설명하는 것(Ex. University DB의 5가지 속성)
Schema는 밖에서 보이지 않는다, DBMS의 Catalog에 저장되어있다. 데이터 베이스의 구조, 타입, 제약 조건 등을 저장하고 있음.
: 특정한 시간에 따라 다른 것. Schema와 다르게 '특정' 순간으로 정해져있다.
즉, Instance는 특정한 Database State를 만족하는 자료들이다.
Database = Schema를 따르는 Instance의 모임 (즉 Valid 하다)
: 외부에서 바라보는 View들. View에서는 Mapping된 정보를 관리함.
Mapping이란 External과 Conceptual 사이의 간극을 맞춰주는 작업이라고 이해하면 됩니다.
: 물리 저장 구조를 숨김. DB 구조, 제약 조건 등을 다룬다.
Conceptual/Internal 단계의 Mapping이 이루어짐
: 물리적 저장 구조를 다룬다.
Web페이지와 Mobile페이지는 보는 View가 다르지만, 같은 정보 (DB) 내용을 다루고 있음.
또는, 관리자 페이지와 일반 회원 페이지가 보는 View는 다르지만 해당 정보는 동일한 DB로 부터 비롯됨.
실제 데이터는 물리단계의 저장공간에만 위치해있습니다. 각각의 단계에 Request(요구)를 전달하기 위해서 Mapping이 이루어짐.
Mapping된 데이터들은 각각 독립적이므로, 연결된 (External-Conceptual, Conceptual-Internal) 구조끼리 영향을 미치지 않는다.
타 계층의 정보가 변경되면 오직 Schema 사이의 'Mapping'만 바뀌면 된다.
ㄴ Schemas와 Mapping을 정의하는 명령문
DML은 Host Language(C, Java...) 에 Embedded될 수 있음.
선언적임, 비절차적임, '어떻게' 보단 '무엇을' 꺼내올지에 집중
독립적으로는 Query언어로 쓰이고, host Language에 Embedded 되어서 쓰임.
한번에 하나의 Record에만 접근, Loop이용
무조건 Embedded 되어서 사용되어야 함.
Embedded Approach : Embedded SQL
Procedur Call Approach : JDBC for Java...
Database Programming Language Approach : Programming Language based on SQL.
Scripting Language : PHP (client-side scripting ) and Python.
ㄴ DDL Statement (DDL 명령어) -> DDL 컴파일러 -> DDL로 Catalog에 Schema 저장.
ㄴ 권한부여 (Privileged Commands)