[DB] Data Models, Data Languages, Data Approaches
Data Models
- A colleciton of for descibing Data, Data relationships, Data semantics, Data constraints
- Relational model
- 관계형 모델은 실제 세계의 데이터를 관계라는 개념을 사용하여 표현한 데이터 모델이다.
- 릴레이션(테이블), 튜플(행), 속성(칼럼)
- SQL로 많은 발전을 이룸
- Entity-Relationship data model
- DB 설계시 주로 사용
- 개체: 단독으로 존재하는 객체를 의미하며, 동일한 개체는 존재하지 않는다. 속성들의 집합으로 하나의 개체가 완성된다.
- 속성: 객체가 갖는 속성을 의미한다.
- 관계: 객체간의 관계를 의미한다. 관계역시 여러가지 속성을 가질 수 있다.

- 그 외 Object-oriented and Object-relational, XML, Network, hierarchical model 등이 존재한다.
Data Manipulation Language(DML)
- DBMS를 통해 data CRUD를 할때에 사용되는 언어, query language라고도 한다.
- Two classes of languages
- Procedural: 사용자가 data를 어떠한 방법으로 얻을지에 대해 명시한다.
- nonprocedural: 사용자는 원하는 data만을 명시하고 그 방법은 DBMS에 위임한다.
- SQL이 가장 대표적인 쿼리언어이다. (nonprocedural)
Data Definition Language(DDL)
- 테이블과 같은 데이터 구조를 정의하는데 사용되는 명령어로 데이터 구조와 관련된 명령어를 말한다.
create tabel instrcutor(
ID char(5);
name varchar(20);
dept_name varchar(20);
salary numeric(8,2)
)
- DDL 컴파일러는 data dictionary에 저장되는 테이블 / 뷰를 생성한다.
- Data dictionary는 메타데이터를 포함한다.(data about data)
- Database schema
- 무결성 제약조건(기본키 조건, 참조 무결성 조건)
- 인가
SQL
select name
from instructor
where instructor.ID = '22222'
select instructor.ID, department.building
from instructor, department // 카디션 곱
where instructor.dept_name = department.dept_name and
department.dept_name - 'Physics'
- App 프로그램의 DB 접근 방법
- 내장된 SQL 언어를 직접사용
- ODBC / JDBC와 같은 API를 사용하여 DB에 SQL 쿼리 생성
Data Approaches
- 테이블 정규화: 어떠한 설계가 나쁜 설계인지 정의하고 테스트한다. data 불일치, 중복 등을 배제
- ER model: DB에 대한 요구사항을 분석하고 ER model를 설계한다. 실제 세계에서 뿐만 아니라 DB에서 필요한 개체, 그 개체의 속성, 개체들의 관계를 정의한다.
댓글남기기