습관처럼

SQL 기본 및 활용 - 제 1절 관계형 데이터베이스의 개요 본문

Certification/Sqld

SQL 기본 및 활용 - 제 1절 관계형 데이터베이스의 개요

dev.wookii 2020. 2. 8. 19:47

1. 데이터베이스

(정의) 특정 기업이나 조직 또는 개인이 필요에 의해(ex: 부가가치가 발생하는) 데이터를 일정한 형태로 저장해 놓은 것

(데이터베이스 관리 소프트웨어) -> DBMS(Database Management System)

 데이터베이스의 발전

- 1960년대 : 플로우차트 중심의 개발 방법

- 1970년대 계층형(Hierarchical) 데이터베이스, 망형(Network) 데이터베이스 같은 제품

- 1980년대 관계형 데이터베이스가 상용화되었으며 Oracle, Sybase, DB2와 같은 제품
- 1990년대 : 객체 관계형 데이터베이스로 Oracle, Sybase, Informix, DB2, Teradata, SQL Server 

 

 관계형 데이터베이스(Relational Database)

- 1970년 영국의 수학자였던 E.F. Codd 박사의 논문에서 처음으로 관계형 데이터베이스가 소개

파일시스템의 단점 

  동시에 입력, 수정, 삭제할 수 없기 때문에 정보의 관리가 어렵다

  복사본 파일을 만들어 사용할 경우 데이터의 불일치성이 발생한다.

- 관계형 데이터베이스의 장점

  •   정규화를 통해 이상(ANOMALY) 현상을 제거하고 데이터 중복을 피할 수 있다
  •   동시성 관리, 병행 제어를 통해 데이터를 공유
  •   데이터의 표현 방법 등을 체계화할 수 있고, 데이터 표준화데이터 품질을 확보
  •   보안 기능
  •   데이터 무결성(Integrity)을 보장
  •   데이터를 회복/복구하는 기능

2. SQL(Structured Query Language)

- SQL의 최초 이름이 SEQUEL(Structured English QUEry Language) - ‘에스큐엘로 읽는 것을 권고
- 1986년부터 ANSI/ISO를 통해 표준화되고 정의된 SQL 기능은 벤더별 DBMS 개발의 목표가 된다.

    ANSI/IS0 SQL-99, SQL-2003 

- 각 벤더의 관계형 데이터베이스(RDBMS)는 표준화된 SQL 이외에도 벤더 차별화 및 이용 편리성을 위해 추가 기능 구현

- SQL 문장들의 종류 - SQL 명령어는 3가지 SAVEPOINT 그룹인 DDL, DML, DCL로 구분

  TCL의 경우 굳이 나눈다면 일부에서 DCL로 분류하기도 하지만, 다소 성격이 다르므로 별도의 4번째 그룹으로 분리

3. TABLE

- 테이블의 예

 테이블(TABLE) : 데이터를 저장하는 객체(Object)로서 관계형 데이터베이스의 기본 단위

 

 테이블의 분할 데이터의 불필요한 중복을 줄이는 것을 정규화(Normalization)라고 한다.

  이상현상(Anomaly)을 방지

- (key) : 기본키(Primary Key), 외부키(Foreign Key)

4. ERD(Entity Relationship Diagram)

- ERD :  ERD(Entity Relationship Diagram).

  ERD의 구성 요소는 엔터티(Entity), 관계(Relationship), 속성(Attribute) 3가지

 

- IE(Information Engineering) 표기법과 Barker(Case*Method) 표기법

 

( 1 ) K-리그 테이블 간의 양방향 관계

           하나의 팀은 여러 명의 선수를 포함할 수 있다. - 한 명의 선수는 하나의 팀에 꼭 속한다.

           하나의 팀은 하나의 전용 구장을 꼭 가진다. - 하나의 운동장은 하나의 홈팀을 가질 수 있다.

           하나의 운동장은 여러 게임의 스케줄을 가질 수 있다. - 하나의 스케줄은 하나의 운동장에 꼭 

           배정된다.

( 2) 부서-사원 테이블 간의 관계 : IE 표기법과 Barker 표기법

            하나의 부서는 여러 명의 사원을 보유할 수 있다.

            한 명의 사원은 하나의 부서에 꼭 소속된다.

사원-부서 테이블 간의 양방향 관계는 다음과 같다.

 

 

출처 : http://www.bysql.net