SQL의 기본적인 내용을 설명하는 장

  • Oracle과 SQL Server의 사례를 중심으로 설명
  1. 데이터베이스
    1. 데이터베이스의 발전
    2. 관계형 데이터베이스
  2. SQL(Structured Query language)
  3. TABLE
    1. 예제
    2. 성격
    3. 테이블 관계 용어
  4. ERD(Entity Relationship Diagram)
    1. 성격
    2. 예제

데이터베이스

  1. 넒은 의미: 일상적인 정보를 모아 놓은 것 자체
  2. 일반적 의미: 특정 기업이나 조직 또는 개인이 필요에 의해 데이터를 일정한 형태로 저장해 놓은 것
    1. 학교: 학생관리를 목적으로 학생 개개인의 정보 저장
    2. 기업: 직원관리를 목적으로 직원의 이름, 부서, 월급 정보 저장
  3. DBMS: 효율적인 데이터의 관리뿐 아니라 데이터의 손상을 피하고 필요시 데이터를 복구하기 위한 소프트웨어(Oracle, MySQL, SQL Server...)

데이터베이스의 발전

  1. 1960년대: 플로우차트 중심의 개발방법, 파일 구조의 데이터 저장, 관리
  2. 1970년대: 데이터베이스 관리 기법이 처음 태동되던 시기, 계층형 데이터베이스, 망형 데이터베이스 상용화
  3. 1980년대: 관계형 데이터베이스 상용화(Oracle, Sybase, DB2)
  4. 1990년대: 보다 향상된 기능으로 많은 관계형 데이터베이스들이 사용, 객체 관계형 데이터베이스로 발전

관계형 데이터베이스

  1. 1970년 E.F.Codd 박사에 의해 처음 소개
  2. IBM의 SQL 개발 단계를 거쳐, Oracle을 선발로 여러 상용화된 제품 소개(주력 데이터베이스로 발전)
  3. 관계형 데이터베이스의 장점
    1. 기존 파일 시스템의 동시성 제한, 데이터 불일치성 문제 해결
    2. 정규화를 통한 합리적인 테이블 모델링을 통해 ANOMALY 현상을 제거하고 데이터 중복을 피한다.
    3. 동시성 관리, 병행 제어를 통해 다수의 사용자가 동시에 데이터를 공유 및 조작할 수 있도록 한다.
    4. 메타 데이터를 총괄 관리하여 데이터를 체계화하고 데이터 표준화를 통해 데이터 품질을 확보한다.
    5. 인증된 사용자만이 참조할 수 있도록 보안 기능을 제공한다.
    6. 제약조건을 사용하여 데이터 무결성을 보장한다.
    7. 데이터의 수정이 제대로 반영될 수 있도록 보장해주는 기능과 시스템 다운/재해의 상황에서 데이터를 복구하는 기능을 제공한다.

SQL(Structured Query language)

  1. 관계형 데이터베이스에서 데이터 정의, 데이터 조작, 데이터 제어를 하기 위해 사용하는 언어
  2. SQL의 최초 이름은 SEQUEL이지만 표준은 SQL이므로 '에스큐엘'로 읽는 것을 권고
  3. 1986년부터 ANSI/ISO를 통해 표준화되어 SQL에 대한 지식은 다른 데이터베이스를 사용하더라도 상당 부분 비슷
  4. 관계형 데이터베이스는 수학의 집합 논리에 입각한 것이므로 SQL도 데이터를 집합으로써 취급

TABLE

예제

  1. K-리그 1차 자료 정리
    1. 선수별 정리
    2. 전체적으로 여러 명의 정보나 비교가 어렵다.
  2. K-리그 2차 자료 정리
    1. 기준(컬럼)을 정해서 비교

성격

  1. 관계형 데이터베이스의 기본 단위
  2. 어느 특정한 주제와 목적으로 만들어지는 일종의 집합
  3. 테이블은 반드시 하나 이상의 컬럼을 가져야 한다.
  4. 컬럼과 행의 2차원 구조로 나타내며 그 하나의 공간을 필드라고 한다.

테이블 관계 용어

  1. 정규화: 테이블을 분할하여 데이터의 불필요한 중복을 줄이는 것
  2. 기본키: 각 행을 한 가지 의미로 특정할 수 있는 한 개 이상의 컬럼
  3. 외부키: 다른 테이블의 기본 키로 사용되면서 테이블과의 관계를 연결하는 역할을 하는 컬럼

ERD(Entity Relationship Diagram)

성격

  1. 엔티티간의 관계의 의미를 직관적으로 표현할 수 있는 좋은 수단
  2. 엔티티, 관계, 속성 3가지로 구성(현실 세계의 데이터를 모두 표현 가능)

예제

  1. K-리그 테이블간의 양방향 관계 설명
    1. 하나의 팀은 여러 명의 선수를 포함할 수 있다.
    2. 한 명의 선수는 하나의 팀에 꼭 속한다.
    3. 하나의 팀은 하나의 전용 구장을 꼭 가진다.
    4. 하나의 운동장은 하나의 홈팀을 가질 수 있다.
    5. 하나의 운동장은 여러 게임의 스케줄을 가질 수 있다.
    6. 하나의 스케줄은 하나의 운동장에 꼭 배정된다.
  2. IE 표기법의 ERD
  3. Baker 표기법의 ERD