1. SQL 개요

1) SQL의 역사

  • 유래: SEQUEL(Structured English Query Language) → SQL로 발전
  • 연혁:
    • 1974: IBM System R 관계형 DBMS 연구 중 개발
    • 1986: ANSI에서 표준으로 채택(SQL-86)
    • 1992~1999: 주요 개정 버전 등장 (SQL-92, SQL3 등)
  • DBMS 호환성: Oracle, MySQL, MS SQL 등 다양한 DBMS에서 사용. 다소 차이 존재

2) SQL의 특징

  • 자연어에 가까운 비절차적 언어
  • 관계 대수와 해석보다 높은 표현력
  • 표준화를 통해 DBMS 간 전환 용이
  • 대화식 SQL과 내포된 SQL 지원
  • 레코드 단위 처리

3) SQL의 수행

  • SQL문 입력 → 관계 DBMS가 번역 후 처리 수행
  • 데이터베이스 접근 인터페이스:
    • 대화식 SQL: 최종 사용자 대상
    • 내포된 SQL: 응용 프로그램에 삽입

4) SQL 구성 요소

  1. 데이터 정의어(DDL): 테이블/뷰/인덱스 생성 및 제거
  2. 데이터 조작어(DML): 데이터 검색, 삽입, 삭제, 갱신
  3. 데이터 제어어(DCL): 권한 부여, 트랜잭션 관리

SQL의 구성요소


2. 데이터 정의어(DDL)

1) 데이터 정의어의 종류

  • CREATE: 테이블, 뷰, 도메인 생성
  • DROP: 테이블, 뷰, 도메인 제거
  • ALTER: 테이블 구조 변경

데이터 정의어의 종류

2) 스키마 생성 및 제거

  • 스키마 생성:
     
    CREATE SCHEMA MY_DB AUTHORIZATION KIM;
  • 스키마 제거:
     
    DROP SCHEMA MY_DB RESTRICT; DROP SCHEMA MY_DB CASCADE;

3) 테이블 생성

  • 기본 형식:
     
    CREATE TABLE 테이블_이름 ( 열_이름 데이터_형식 [NOT NULL | UNIQUE | DEFAULT | CHECK],
    PRIMARY KEY (열_이름),
    FOREIGN KEY (열_이름) REFERENCES 테이블_이름(열_이름)
    );
  • 데이터 타입 (SQL-92):
    • INTEGER, SMALLINT, REAL, FLOAT, CHAR, VARCHAR, DATE, BLOB 등
    • 데이터 타입
  • 도메인 생성:
     
    CREATE DOMAIN DEPTNAME CHAR(10) DEFAULT '개발' CONSTRAINT VALID_DEPT CHECK (VALUE IN ('영업', '총무', '기획', '개발'));
  • 도메인 제거:
     
    DROP DOMAIN DEPTNAME;

4) 테이블 제거(DROP)

  • 형식:
     
    DROP TABLE 테이블_이름 [RESTRICT | CASCADE];

5) 테이블 변경(ALTER)

  • 열 추가:
     
    ALTER TABLE 테이블_이름 ADD 열_이름 데이터_형식;
    열 추가
  • 열 삭제:
     
    ALTER TABLE 테이블_이름 DROP COLUMN 열_이름;
    열 삭제

3. 무결성 제약조건

1) 주요 제약조건

  • NOT NULL: 속성값이 반드시 존재해야 함.
  • UNIQUE: 속성값이 유일하도록 보장.
  • DEFAULT: 기본값 지정.
  • CHECK: 속성값의 유효 범위 지정.
  • PRIMARY KEY: 기본키 정의로 개체 무결성 보장.
  • FOREIGN KEY: 참조 무결성 제약조건 정의.

2) 기본 예시

무결성 제약조건

4. 테이블 생성 사례

  • 학생, 과목, 수강 릴레이션:
    • 학생 테이블:
       
      CREATE TABLE STUDENT (
          SNO INTEGER NOT NULL PRIMARY KEY,
          SNAME CHAR(10)
      );
    • 과목 테이블:
       
      CREATE TABLE COURSE (
          CNO CHAR(5) NOT NULL PRIMARY KEY,
          CNAME CHAR(20)
      );
    • 수강 테이블:
       
      CREATE TABLE ENROLL (
          SNO INTEGER,
          CNO CHAR(5),
          GRADE CHAR(2),
          PRIMARY KEY (SNO, CNO),
          FOREIGN KEY (SNO) REFERENCES STUDENT(SNO),
          FOREIGN KEY (CNO) REFERENCES COURSE(CNO)
      );

 

1. 조인 연산자

1.1. 조인의 정의

조인은 두 릴레이션에서 조건에 따라 관련된 튜플을 결합하는 연산으로, 데이터베이스에서 가장 중요한 연산 중 하나.

1.2. 조인의 유형

  1. 세타 조인 (Theta Join)
    • 조건식에 {=, <>, <, >, <=, >=} 등의 연산자를 사용.
    • 예: R ⋈ (R.Attribute θ S.Attribute) S
  2. 동등 조인 (Equi-join)
    • 세타 조인의 한 형태로, 조건식이 =일 때 사용.
    • 결과: 조건을 만족하는 튜플들의 조합.
    • 동등 조인
  3. 자연 조인 (Natural Join)
    • 동등 조인 후, 중복 속성을 제거.
    • 주로 릴레이션 간 관련 데이터를 연결하는 데 사용.
    • 예: R ⋈N S
      • 중복된 속성은 하나만 유지.
    • 자연 조인
  4. 외부 조인 (Outer Join)
    조인 실패 시에도 튜플을 포함하며, NULL 값을 추가.
    • 왼쪽 외부 조인: 왼쪽 릴레이션의 모든 튜플 포함.
    • 오른쪽 외부 조인: 오른쪽 릴레이션의 모든 튜플 포함.
    • 완전 외부 조인: 양쪽 릴레이션의 모든 튜플 포함.
    • 왼쪽 외부 조인


    • 완전 외부 조인
  5. 세미 조인 (Semijoin)
    • 조인 결과에서 필요하지 않은 속성을 미리 제거하여 효율성 증가.
    • 예: R ⨝ S
      • S에서 필요한 속성만 선택 후 R과 조인.
    • 세미 조인


  6. 정리
    • 조인 연산자


    • 조인 연산자

2. 디비전 연산자 (Division Operator, ÷)

2.1. 정의

릴레이션 R과 S에서 S에 포함된 모든 튜플과 관련된 R의 튜플만 반환.

2.2. 사용 예시

  • R의 속성: (A, B)
  • S의 속성: (B)
  • R ÷ S의 결과는 R에서 속성 A를 반환하며, S의 모든 튜플과 매칭된 경우만 포함.
    • 디비전 연산자

2.3. 응용

  • 학생과 과목 데이터에서, 특정 과목을 수강한 학생 목록을 구할 때 사용.
  • 예:
    • 릴레이션 학번(Sno)과 과목번호(Cno)
    • R ÷ S 연산으로 모든 과목(Cno)을 이수한 학생(Sno)을 구함.
    • 디비전 연산자

사례 연구

1. 세타 조인 예시

릴레이션 EMPLOYEE와 DEPARTMENT를 DNO = DEPTNO 조건으로 조인:

세타 조인

 

2. 외부 조인 예시

도서 릴레이션과 출판사 릴레이션의 왼쪽 외부 조인:

외부 조인

 

정리

  • 조인 연산자는 데이터베이스에서 릴레이션 간의 관계를 표현하고 연결하는 데 필수적.
  • 디비전 연산자는 특정 조건을 만족하는 릴레이션을 구할 때 유용.
  • 실무에서는 주로 자연 조인외부 조인이 많이 활용됨.

 

1. 관계데이터연산의 이해

  • 정의: 원하는 데이터를 얻기 위해 릴레이션에 연산 수행.
  • 종류:
    • 관계대수: 절차적 언어(How, What)로, SQL의 이론적 기초.
    • 관계해석: 비절차적 언어(What)로, 원하는 데이터만 명시.

2. 관계대수의 개념

  • 릴레이션을 처리하는 연산 집합으로, 새로운 릴레이션 생성.
  • 연산의 성질:
    • 단일/두 릴레이션을 입력으로 받아 결과 릴레이션 반환.
    • 폐쇄성: 결과 릴레이션은 다른 연산의 입력으로 사용 가능.
  • 관계 연산자

3. 관계대수 – 일반 집합 연산자

  • 연산 종류:
    1. 합집합 (∪): 두 릴레이션의 모든 투플 반환.
    2. 교집합 (∩): 두 릴레이션 모두에 속한 투플 반환.
    3. 차집합 (-): 첫 번째 릴레이션에만 속한 투플 반환.
    4. 카티션 곱 (×): 두 릴레이션의 모든 조합 반환.
      1. 카티션 곱
  • 특성:
    • 합집합, 교집합, 차집합은 합병 가능성이 필요.
    • 합병 가능성: 두 릴레이션의 차수와 대응 속성 도메인이 같아야 함.

4. 관계대수 – 순수 관계 연산자

  • 릴레이션 특성과 구조를 활용해 연산 수행.
  • 연산 종류:
    1. 셀렉션 (SELECTION, σ): 조건에 맞는 투플 선택.
    2. 프로젝션 (PROJECTION, π): 선택된 속성(열)만 추출.
    3. 조인 (JOIN): 두 릴레이션의 조건에 따라 결합.
    4. 디비전 (DIVISION, ÷): 특정 조건에 맞는 릴레이션 반환.

핵심 요점

  • 관계대수는 데이터 검색 및 처리의 이론적 기초.
  • 집합 연산자와 순수 관계 연산자로 구성.
  • 연산은 SQL과 같은 데이터 언어에서 사용되는 핵심 개념.

1. 릴레이션(Relation)의 개념

1) 수학적 정의

  • 릴레이션: 카티션 프로덕트(Cartesian Product)인 D1×D2××Dn 의 부분집합
    • n-투플: , di Di
  • 차수(degree): 릴레이션의 속성 개수
  • 카디널리티(cardinality): 릴레이션의 투플(행)의 수

2) 개념적 정의

  • 릴레이션 스키마: 릴레이션의 구조와 속성 이름 정의
    • 표기법: 릴레이션이름(속성1, 속성2, ..., 속성N)
    • 정적 성질 (내포, Intension)
  • 릴레이션 인스턴스: 특정 시점의 릴레이션 데이터를 의미
    • 삽입, 삭제, 갱신에 따라 동적으로 변화 (외연, Extension)

2. 릴레이션의 특성

  1. 투플의 유일성:
    • 릴레이션 내에 동일한 투플이 존재할 수 없음.
    • 키(key)를 통해 보장.
  2. 투플의 무순서성:
    • 투플들의 순서는 중요하지 않음.
  3. 애트리뷰트(속성)의 무순서성:
    • 애트리뷰트 순서가 다르더라도 동일 릴레이션으로 간주.
  4. 속성의 원자성:
    • 각 속성 값은 더 이상 분해되지 않는 원자 값이어야 함.
  5. 기타:
    • 하나의 릴레이션은 한 가지 레코드 타입만 포함.
    • 속성의 데이터 타입은 동일해야 함.
    • 속성 이름은 릴레이션 내에서 고유해야 함.

3. 릴레이션의 키

1) 키의 정의

  • 릴레이션에서 투플을 고유하게 식별할 수 있는 속성(또는 속성 집합).

2) 키의 유형

  1. 수퍼키(Super Key):
    • 투플을 고유하게 식별할 수 있는 속성 집합.
    • 유일성을 만족하지만 최소성을 보장하지 않음.
    • 예: (회원번호, 주민등록번호), (회원번호, 등급)
  2. 후보키(Candidate Key):
    • 투플을 고유하게 식별하는 최소한의 속성 집합.
    • 유일성과 최소성을 만족.
    • 릴레이션에는 최소 한 개 이상의 후보키 존재.
    • 예: (회원번호), (주민등록번호)
  3. 기본키(Primary Key):
    • 후보키 중 릴레이션에서 대표로 선정된 키.
    • NULL 값을 가질 수 없음.
    • 예: 신용카드번호
  4. 대체키(Alternate Key):
    • 후보키 중 기본키로 선정되지 않은 키.
    • 예: 주민등록번호 (기본키가 신용카드번호인 경우)
  5. 외래키(Foreign Key):
    • 다른 릴레이션의 기본키를 참조하는 속성.
    • 참조하는 릴레이션의 기본키와 동일한 도메인.
    • 값은 참조되는 기본키 값이거나 NULL.

3) 키들의 포함 관계

  • 수퍼키 ⊇ 후보키 ⊇ 기본키
  • 키들의 포함 관계
  • 관계 데이터 모델에서의 키

4. 무결성 제약

1) 데이터 무결성

  • 데이터의 정확성과 유효성을 보장.
  • 데이터베이스 상태가 일관성을 유지하도록 조건 설정.
  • DBMS가 자동으로 검사하여 응용 프로그램에서 별도로 확인할 필요가 없음.

2) 개체 무결성 제약조건 (Entity Integrity Constraint)

  • 기본키 속성은 NULL 값을 가질 수 없음.
  • NULL 값 의미:
    1. 값이 알려지지 않음 (unknown value)
    2. 해당 없음 (inapplicable)

3) 참조 무결성 제약조건 (Referential Integrity Constraint)

  • 외래키 값은 반드시 참조되는 릴레이션의 기본키 값이거나 NULL이어야 함.
  • 외래키와 기본키 사이 관계:
    • 외래키 값 기본키 값
    • 또는 외래키 값 = NULL

무결성 제약 유지 시 고려사항

  1. 삽입:
    • 참조하는 릴레이션에 존재하지 않는 값을 삽입하면 제약조건 위배.
    •  
      참조되는 경우


    • 참조하는 경우
  2. 삭제:
    • 참조되는 투플 삭제 시 다른 릴레이션의 무결성 위배 가능.

참조 무결성을 유지하기 위한 DBMS 옵션

  1. 제한(Restricted)
    • 동작: 참조 무결성을 위배하는 연산을 단순히 거절합니다.
    • :
      • 상황: 부서 릴레이션에서 (3, 개발, 9)를 삭제하려고 함.
      • 문제: 부서번호 3을 참조하는 사원 릴레이션의 레코드(박영권, 최종철)가 존재.
      • 결과: 삭제 연산이 거절됨.
  2. 연쇄(Cascade)
    • 동작: 참조되는 릴레이션의 레코드 삭제 시, 이를 참조하는 릴레이션의 레코드도 자동으로 삭제합니다.
    • :
      • 상황: 부서 릴레이션에서 (3, 개발, 9)를 삭제하려고 함.
      • 문제: 부서번호 3을 참조하는 사원 릴레이션의 레코드(박영권, 최종철)가 존재.
      • 결과: 부서 릴레이션의 (3, 개발, 9)와 함께 사원 릴레이션의 해당 레코드들도 모두 삭제됨.
  3. NO ACTION (= Restricted)
    • 동작: 참조 무결성을 위배하는 연산을 거절합니다(제한 옵션과 동일한 동작).
    • :
      • 상황: 부서 릴레이션에서 (3, 개발, 9)를 (5, 개발, 9)로 변경하려고 함.
      • 문제: 사원 릴레이션에서 부서번호 3을 참조하는 레코드(박영권, 최종철)는 변경되지 않음.
      • 결과: 변경 연산이 거절됨.

참조 무결성 유지를 위한 DBMS 옵션

1. 데이터베이스시스템 구조와 유형

  1. 데이터베이스시스템 아키텍처
    • 주요 구성 요소: 데이터베이스, DBMS, 질의처리기, 트랜잭션관리기 등.
    • API(Application Program Interface):
      • ODBC: 윈도우 기반 데이터베이스 연결 표준.
      • JDBC: 자바 기반 데이터베이스 연결 표준.
    • 데이터베이스 시스템 아키텍처
  2. 데이터베이스시스템 유형
    • 중앙집중식: 하나의 컴퓨터 시스템에서 데이터베이스 운영.
      • 중앙 집중식
    • 분산형: 네트워크로 연결된 여러 컴퓨터에서 데이터베이스 운영.
      • 분산 데이터베이스 시스템
    • 클라이언트-서버: 클라이언트에서 요청, 서버에서 처리.
      • 클라이언트 서버 데이터베이스 시스템
      • 2층 모델: 클라이언트와 데이터베이스 서버 직접 연결.
      • 3층 모델: 클라이언트와 서버 사이에 응용 서버 추가.

 


2. 데이터모델

  1. 개념
    • 데이터를 단순화, 추상화하여 체계적으로 표현하는 도구.
    • 데이터베이스 설계 과정:
      • 개념적 모델: 개체-관계(E-R) 모델 등.
      • 논리적 모델: 관계형 데이터모델 등.
  2. 구성 요소 (D = <S, O, C>)
    • S (구조): 개체타입 및 관계 명세 (정적).
    • O (연산): 데이터 처리 작업 명세 (동적).
    • C (제약조건): 데이터 무결성 및 논리적 제한 명세.
  3. 데이터모델의 종류
    • 관계형 데이터모델: 가장 널리 사용됨.
    • 계층형, 네트워크형, 객체지향형, 객체-관계형 데이터모델도 있음.

3. 관계데이터모델

  • 1970년 E.F. Codd가 제안.
  • 데이터 구조: 간단한 테이블(릴레이션) 기반.
  • 주요 특징:
    • 테이블로 논리적 데이터 구성.
    • 선언형 질의어 사용.
    • 데이터 처리에서 링크나 포인터 불필요.
    • 데이터의 "무엇"을 명시하며, "어떻게"는 DBMS에 위임.

4. 관계데이터모델의 용어

  • 릴레이션(Relation): 2차원 테이블.
  • 레코드/투플(Tuple): 릴레이션의 한 행.
  • 애트리뷰트(Attribute): 릴레이션의 한 열.
  • 도메인(Domain): 애트리뷰트가 가질 수 있는 값들의 집합.
  • 차수(Degree): 릴레이션의 애트리뷰트(열) 수.
  • 카디널리티(Cardinality): 릴레이션의 투플(행) 수.
  • 릴레이션

요약

  1. 데이터베이스시스템 아키텍처 유형
    • 중앙집중식, 분산형, 클라이언트-서버.
  2. 데이터모델
    • 구성요소: 구조(S), 연산(O), 제약조건(C).
  3. 관계형 데이터모델
    • E.F. Codd 제안, 릴레이션 기반.
  4. 기본 용어
    • 릴레이션: 테이블.
    • 투플: 행.
    • 도메인: 열의 값 집합.
    • 차수와 카디널리티: 열과 행의 개수.

1. 데이터베이스 시스템의 구성요소

  1. 데이터베이스
    • 정의: 조직 내 여러 응용시스템이 공유하는 통합된 운영 데이터 집합.
    • 구성:
      • 데이터 베이스
      • 시스템 카탈로그: 데이터베이스 스키마 정보를 저장.
      • 저장 데이터베이스.
  2. 데이터베이스 관리 시스템(DBMS)
    • 기능:
      • 사용자 요구 접수 및 분석.
      • 요구 변환 및 데이터 구조 매핑.
      • 데이터베이스 연산 수행.
    • 구성 요소:
      • DDL 컴파일러, 질의어 처리기, 런타임 처리기 등.
      • 트랜잭션 관리자: 무결성, 병행 제어, 회복 관리.
  3. 데이터 언어
    • 구분:
      • DDL(Data Definition Language): 데이터 스키마 정의(예: CREATE TABLE, ALTER TABLE).
      • DML(Data Manipulation Language): 데이터 검색, 수정, 삽입, 삭제(예: SELECT, UPDATE).
      • DCL(Data Control Language): 데이터 보안 및 무결성 관리(예: GRANT, REVOKE).
      • 데이터 언어
  4. 사용자 유형
    • 데이터베이스 관리자(DBA): 데이터베이스 스키마 관리, 무결성 및 권한 설정, 백업 및 복구.
    • 응용 프로그래머: 특정 응용프로그램 설계 및 데이터 접근.
    • 최종 사용자: 데이터 조회 및 처리.
    • 데이터베이스 설계자: 데이터 모델 설계 및 정규화 수행.
  5. 데이터베이스 컴퓨터
    • 역할: 데이터 처리 및 저장 전용 하드웨어.
    • 구성: 터미널 → 데이터베이스 응용 → DB 컴퓨터 인터페이스 → 저장 데이터베이스.
    • 데이터베이스 구성도

 

 


2. 3단계 데이터베이스 구조

  1. 3단계 표현
    • 외부 단계: 사용자 관점의 데이터 표현(개별 뷰).
    • 개념 단계: 전체 데이터베이스의 논리적 구조.
    • 내부 단계: 물리적 데이터 저장 구조.
  2. 스키마(Schema)
    • 외부 스키마: 개별 사용자 입장의 데이터 구조.
    • 개념 스키마: 통합된 데이터 구조.
    • 내부 스키마: 데이터 저장 및 접근 방법 명세.
  3. 3단계 간의 매핑
    • 외부/개념 매핑: 논리적 데이터 독립성 제공.
    • 개념/내부 매핑: 물리적 데이터 독립성 제공.
    • 내부/장치 매핑: 장치와 내부 스키마 간 연계.
    • 3단계 간의 매핑


    • 3단계 데이터베이스 구조
  4. 데이터 독립성
    • 논리적 데이터 독립성: 개념 스키마 변경이 외부 스키마에 미치지 않음.
    • 물리적 데이터 독립성: 내부 스키마 변경이 개념 및 외부 스키마에 미치지 않음.

 

요약

  • 데이터베이스 시스템은 데이터베이스, DBMS, 데이터 언어, 사용자 및 하드웨어로 구성됨.
  • 3단계 데이터베이스 구조는 데이터 독립성을 구현하며 데이터 관리 효율성을 높임.

1. 데이터베이스 관리 시스템의 등장 배경

1.1 파일 중심 데이터 처리 시스템

  • 개념
    1960년대부터 사용된 데이터 처리 방식으로, 응용 프로그램마다 독립적인 파일을 유지하며 데이터를 운영체제의 파일로 저장.
  • 특징
    • 응용 프로그램과 파일 구조가 밀접히 연관됨.
    • 데이터 논리 구조와 물리 구조가 일치.
    • 동일 데이터가 여러 파일에 중복 저장.
  • 문제점
    • 데이터 종속성: 데이터 구조 변경 시 응용 프로그램도 수정해야 함.
    • 데이터 중복성: 동일 데이터의 중복으로 비효율 발생.
    • 동시성 제어 및 회복 기능 부족.
    • 데이터의 무결성 및 일관성 유지 어려움.

1.2 데이터 중복성(Data Redundancy) 의 문제

  • 정의
    같은 데이터가 여러 파일에 중복 저장되는 현상.
  • 문제점
    • 일관성(Consistency): 동일한 데이터를 모든 파일에서 동기화 유지.
    • 보안성(Security): 데이터의 보안 수준을 일정하게 유지.
    • 경제성(Economics): 저장 공간 낭비.
    • 무결성(Integrity): 데이터 정확성 및 신뢰성 저하.

1.3 데이터 종속성(Data Dependency) 의 문제

  • 정의
    데이터와 응용 프로그램 간의 상호 의존 관계를 의미하며, 데이터 구성 방식, 형식, 접근 방법이 변경될 경우 관련 응용 프로그램도 수정이 필요한 상태를 말함.
  • 문제점
    • 유연성 부족: 데이터 구조 변경 시 관련된 모든 프로그램을 수정해야 함.
    • 관리 어려움: 동일한 데이터 구조를 사용하는 여러 프로그램을 일일이 관리해야 함.
    • 비효율성: 프로그램과 데이터의 강한 연결로 인해 유지보수 및 개발 작업이 복잡해짐.
  • 예시
    • 고객 관리 프로그램과 서비스 관리 프로그램이 동일한 고객 데이터를 사용하더라도, 데이터 형식이 다를 경우 각각 별도로 구현 및 수정해야 하는 문제가 발생함.
  • 개선 필요성
    이와 같은 데이터 종속성 문제를 해결하기 위해 데이터베이스관리시스템(DBMS)가 도입되었으며, 데이터와 프로그램 간의 독립성을 보장하여 유지보수와 효율성을 향상시킴.

2. 데이터베이스 관리 시스템(DBMS)

2.1 DBMS 정의

  • 데이터베이스와 사용자 또는 응용 프로그램 사이에서 데이터를 효율적으로 관리하고 처리하는 소프트웨어 시스템.
  • 주요 기능: 데이터 검색, 삽입, 수정, 삭제 등 데이터 조작 및 질의어(Query) 지원.

2.2 DBMS의 필수 기능

  1. 정의 기능 (Definition Function)
    • 데이터 구조를 정의하고 저장 구조를 조직화.
    • 논리적, 물리적 데이터 구조 명세 제공.
  2. 조작 기능 (Manipulation Function)
    • 데이터 검색, 삽입, 삭제, 갱신을 지원.
    • 사용하기 쉬운 인터페이스와 효율적인 데이터 접근 제공.
  3. 제어 기능 (Control Function)
    • 데이터 정확성과 보안성 유지.
    • 무결성(Integrity), 병행 제어(Concurrency Control), 권한 검사 기능 포함.

2.3 DBMS의 장단점

  • 장점
    • 데이터 중복 최소화, 공용성 제공, 일관성 유지, 무결성 보장, 보안성 향상.
    • 표준화 용이, 데이터 조정 및 관리 효율성 증대.
  • 단점
    • 높은 초기 비용(하드웨어/소프트웨어).
    • 특정 응용 프로그램 복잡성 증가.
    • 백업과 회복 과정의 어려움.
    • 시스템 고장 시 데이터 의존성으로 취약성 존재.

2.4 DBMS와 파일 시스템 비교

DBMS와 파일 시스템 비교

 


3. 데이터베이스 관리 시스템의 발전 과정

3.1 1세대: 네트워크 모델과 계층 모델 (1960~1970년대)

  • 네트워크 DBMS
    • 레코드들이 그래프 구조로 연결된 데이터 모델.
    • 데이터 구조 변경이 어려움.
  • 계층 DBMS
    • 데이터를 트리 구조로 표현.
    • 특정 응용 프로그램에 효율적이지만 수정 및 확장이 어려움.

3.2 2세대: 관계 데이터 모델 (1970년대~1980년대 이후)

  • 관계 데이터 모델
    • 데이터를 테이블 형식(릴레이션)으로 표현.
    • 단순하고 이해하기 쉬운 구조.
    • 사용자는 데이터를 요청(What)만 명시하고, 접근 방법(How)은 명시하지 않음.
  • 주요 시스템
    • IBM의 System/R: SQL의 시초인 SEQUEL 언어 개발.
    • Ingres(버클리 대학), Oracle, MySQL, MS-SQL 등이 상용화됨.

3.3 3세대: 객체 지향 및 객체 관계 모델 (1980년대 후반~1990년대 이후)

  • 객체 지향 DBMS (Object-Oriented DBMS)
    • 데이터와 프로그램을 객체 단위로 그룹화하여 복잡한 데이터 구조 관리 용이.
  • 객체 관계 DBMS (Object-Relational DBMS)
    • 관계 DBMS에 객체 지향 개념을 통합.

3.4 새로운 데이터베이스 응용

  • 게놈 데이터베이스, 데이터웨어하우스, 데이터마이닝.
  • OLAP, 멀티미디어, 웹 데이터베이스, 소프트웨어 공학 데이터베이스 등.

요약

  1. DBMS 등장 배경
    파일 시스템의 문제점(데이터 중복, 종속성)을 극복하기 위해 등장.
  2. DBMS 기능
    정의, 조작, 제어 기능으로 데이터 관리 효율성을 증대.
  3. DBMS 발전 과정
    계층/네트워크 모델 → 관계 데이터 모델 → 객체 지향 및 객체 관계 모델.

데이터와 정보

  • 데이터(Data)
    • 현실 세계에서 관찰하거나 측정하여 수집된 이나 사실입니다.
    • 예: 고객 정보, 상품 정보, 주문 내역.
    • 예시 데이터
      주문일 | 고객 | 상품         | 수량 | 단가 | 매출
      ------------------------------------------
      3/3   | 이마트 | 삼진어묵주먹밥 | 90   | 1,400 | 126,000
      3/4   | GS25  | 삼진어묵주먹밥 | 30   | 1,400 | 42,000
  • 정보(Information)
    • 데이터를 처리하여 의사결정에 활용 가능한 형태로 변환한 결과입니다.
    • 예: 매출 기준으로 가장 우수한 고객, 가장 많이 팔린 상품 등.
  • 정보의 유용성
    • 정확성(Accuracy): 정보가 오류 없이 정확해야 함.
    • 현재성(Currency): 최신 데이터로 유지되어야 함.

1. 정보처리시스템

정보시스템 (Information System)

  • 정의
    조직에서 데이터를 수집, 처리, 저장, 배포하여 의사결정에 필요한 정보를 제공하는 시스템.
  • 정보시스템의 종류
    • 경영정보시스템(MIS): 기업의 기획, 운영, 통제를 지원.
    • 의사결정지원시스템(DSS): 데이터웨어하우스, 데이터마이닝을 활용하여 복잡한 의사결정을 지원.
    • 군사정보시스템(MIS), 행정정보시스템(AIS), 인사정보시스템(PIS): 다양한 조직별 특화 시스템.
  • 정보시스템의 예
    • 항공사 예약 시스템: 실시간으로 좌석 예약 정보 관리.
    • 대형마트 관리 시스템: 상품 입고, 판매, 재고 데이터 관리.

2. 자료처리시스템

자료처리시스템 (Data Processing System)

  • 정의
    정보시스템이 사용하는 데이터를 처리하는 서브시스템.
  • 유형
    1. 일괄처리(Batch Processing)
      • 데이터를 모아 일괄 처리하는 방식.
      • 예: 전기요금 청구서 발행.
    2. 온라인처리(Online Processing)
      • 데이터가 발생할 때마다 실시간으로 처리.
      • 예: ATM 거래, 온라인 쇼핑 주문.
    3. 분산처리(Distributed Processing)
      • 여러 대의 컴퓨터가 통신 네트워크를 통해 데이터를 처리.
      • 예: 클라우드 기반 데이터베이스.

3. 데이터베이스 정의 및 특성

데이터베이스(Database)의 정의 및 특성

  • 정의
    특정 조직에서 통합하여 저장하고 여러 사용자와 응용 프로그램이 공유할 수 있도록 설계된 데이터의 집합.
    ※ 통합데이터(Integrated Data)
    : 최소의중복(minimal redundancy), 통제된중복(Controlled Redundancy)
    ※ 저장데이터(Stored Data)
    : 컴퓨터가 접근가능한 매체에 저장(디스크등)
    ※ 운영데이터(Operational Data)
    : 한 조직의 고유기능을 수행하기 위해 필요한 데이터
    ※ 공용데이터(Shared Data)
    : 한 조직의 여러 응용 프로그램이 공동으로 소유, 유지, 이용하는데이터
  • 특성
    1. 동시공용(Concurrent Sharing): 여러 사용자가 동시에 데이터 접근 가능.
    2. 내용기반참조(Content Reference): 위치가 아닌 데이터의 값에 따라 참조.
    3. 실시간 접근성(Real-Time Accessibility): 질의에 대해 실시간 응답 가능.
    4. 계속적인 변화(Continuous Evolution): 데이터가 계속 갱신되고 추가됨.
  • 데이터베이스 구조
    • 논리적 구조: 데이터의 배치와 표현. (사용자 관점)
    • 물리적 구조: 저장 장치에 저장된 데이터의 실제 구조.

데이터베이스 구조

+ Recent posts