[DB] Data Models, Data Languages, Data Approaches

1 분 소요

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에서 필요한 개체, 그 개체의 속성, 개체들의 관계를 정의한다.

태그: ,

카테고리:

업데이트:

댓글남기기