Transcript DBMS-01장

01 : 데이터베이스와 SQL 개요
학습 목표
데이터베이스 관리 시스템의 정의와 필요성, 용도, 종류 등을 이해한다.
비관계형과 관계형 데이터베이스를 알아보고 중요성을 이해한다.
SQL의 개요와 전반적인 역사, 주요 특징을 이해한다.
데이터 형과 NULL의 개념을 이해한다.
01
Chapter
데이터베이스와 SQL 개요
1. 데이터베이스 관리 시스템(DBMS)
2. 데이터베이스의 종류
3. SQL의 이해
4. 데이터 형식과 NULL
5. 예제 학습 및 실습 준비
01
Chapter
1. 데이터베이스 관리 시스템
개요
 데이터베이스 관리 시스템
• DBMS, DataBase Management System
• 데이터 집합인 데이터베이스를 운영하는 소프트웨어
01
Chapter
1. 데이터베이스 관리 시스템
DBMS의 필요성
 데이터 무결성을 강화한다.
 데이터 중복과 비일관성을 방지한다.
 데이터 공유성을 개선시킨다.
 표준화를 활성화한다.
 보안을 강화한다.
 프로그램을 수정하고 유지 보수하기가 쉽다.
 성능을 향상시킨다.
 데이터를 좀 더 효율적으로 관리한다.
01
Chapter
1. 데이터베이스 관리 시스템
DBMS의 이용 사례
 경영 정보 시스템
• 인사 관리, 재무 관리, 생산 관리, 판매 관리 등
• 전사적 자원 관리(ERP, Enterprise Resource Planning) 시스템
 데이터 웨어하우스
• 회사의 각 사업부문에서 수집된 데이터를 모아 놓은 창고를 뜻함
• 고객의 구매 동향, 신제품에 대한 반응도, 제품별 수익률 등 마케팅
정보를 얻을 수 있다.
01
Chapter
1. 데이터베이스 관리 시스템
DBMS의 이용 사례
 그룹웨어 및 지식 관리 시스템
• 전자 게시판, 그룹웨어, 문서관리 시스템, 전자결재 시스템,
워크플로(workflow), 지식관리 시스템(Knowledge Management
System)
 전자상거래 시스템과 CRM 시스템
• B2B, B2C, 고객 관계 관리(CRM, Customer Relationship
Management) 시스템
01
Chapter
1. 데이터베이스 관리 시스템
DBMS의 이용 사례
 주요 용어
• 그룹웨어: 여러 사람이 함께 쓸 수 있는 소프트웨어로, 집단 작업을
지원하기 위해 만들어진 소프트웨어
• 워크플로: 기업이나 단체의 업무에 관련된 정보를 공유하고 그 흐름을
관리하는 시스템
• 지식 관리 시스템: 조직이나 기업의 인적 자원이 축적하고 있는
개별적인 지식을 체계화하여 공유함으로써 경쟁력을
향상시키기 위한 기업 정보 시스템
01
Chapter
DBMS의 종류
1. 데이터베이스 관리 시스템
01
Chapter
2. 데이터베이스의 종류
비관계형 데이터베이스
 계층형 데이터베이스
: 데이터베이스 모형의 일종으로 데이터가 트리 형태로 계층적으로 저장
• 주요 특징
- 계층 구조로 이루어진 가장 오래된 DBMS(1960년대 시작)
- 각 계층 구조는 물리적인 포인터로 연결, 종속적
- 초기 구축 후 구조 변경이 어려움
- 예상치 못한 무작위 검색 어려움
01
Chapter
2. 데이터베이스의 종류
비관계형 데이터베이스
 망형(Hierarchical) 데이터베이스
: 계층형 트리를 망(network) 형태로 확장한 것
• 레코드 사이에 다대다 관계 유지
• 복잡한 내부 포인터 사용
• 주요 특징
- 계층형 데이터베이스 문제점 해결 위해 1970년대 초 개발
- 계층 구조간 연결 고리를 추가하여 빠르고 효과적인 데이터 추출 가능
- 복잡한 형태의 시스템에는 많은 유지보수 비용과 Backlog가 필요
- 프로그래머가 구조를 이해해야만 프로그램이 작성 가능
01
Chapter
2. 데이터베이스의 종류
관계형 데이터베이스
 관계형 데이터베이스: 테이블(또는 릴레이션, 엔티티)들로 구성된다.
- 테이블 내에 열(또는 속성, 필드)이 있으며,
열 값의 한 묶음을 행(또는 인스턴스, 투플, 레코드)이라 한다.
01
Chapter
2. 데이터베이스의 종류
관계형 데이터베이스
 행(레코드)을 연결하기 위해 내부 포인터가 아닌 열 값을 사용한다.
예) 고객 레코드와 주문 레코드에는 고객 ID라는 공통적인 열이 있어서
이 열이 레코드들을 서로 연결한다.(외래 키 개념)
01
Chapter
2. 데이터베이스의 종류
관계형 데이터베이스의 장점
 내장된 다중 수준의 데이터 무결성
• 데이터의 정확도를 보장하기 위한 필드 수준의 무결성
• 레코드가 중복되지 않음을 보장하고 주 키 값 누락을 감지하기 위한
테이블 수준의 무결성
• 한 쌍의 테이블 사이의 관계가 유효함을 보장하기 위한 관계 수준의 무결성
• 데이터가 업무 지침과 일치하는지를 보장하기 위한 업무 수준의 무결성
 논리적 및 물리적 데이터의 응용 프로그램으로부터의 독립성
• 사용자가 데이터베이스의 논리적 설계를 수정하거나 DBMS 개발사가
데이터베이스의 물리적 구현을 수정하더라도 데이터베이스 위에 구축된
애플리케이션에 악영향을 미치지 않는다.
01
Chapter
2. 데이터베이스의 종류
관계형 데이터베이스의 장점
 보장된 데이터 일관성과 정확성
• 데이터베이스 내에 부과할 수 있는 다양한 수준의 무결성으로 인해
데이터가 일관성 있고 정확하다.
 손쉬운 데이터 추출
• 사용자의 명령어로 데이터베이스 내의 특정 테이블 하나 또는 여러 개의
서로 연관된 테이블들로부터 데이터를 추출할 수 있다. 이는 거의 무한대의
방법으로 사용자가 정보를 볼 수 있게 해 준다.
01
Chapter
3. SQL의 이해
개요
 SQL(Structured Query Language)
- 관계형 데이터베이스의 데이터를 관리, 조작하기 위한 언어
 SQL에는 IF, GOTO, WHILE 같은 제어문이 없다.
 SQL을 확장해서 만든 범용 언어 수준의 언어: T-SQL, PL/SQL
01
Chapter
3. SQL의 이해
SQL의 특징과 장점
 개발사 독립성
 컴퓨터 시스템 간의 이주 용이성
 대화식 및 즉석 쿼리
 클라이언트/ 서버 구조
 마이크로소프트의 지원
 데이터의 다양한 표현
 IBM의 지원
 동적인 데이터 정의
 활발한 SQL 표준화
 객체지향과 XML 기술의 지원
 관계형의 기초
 인터넷 데이터베이스 액세스
 영어 형식의 구문
 산업 인프라의 기초
01
Chapter
SQL의 이력
3. SQL의 이해
01
Chapter
SQL의 이력
3. SQL의 이해
01
Chapter
3. SQL의 이해
SQL의 표준화
 표준화 기관
• ANSI(American National Standards Institute)
- 미국 내에서 기술 표준 개발을 육성하기 위해 설립된 제 1차 기관
: 아스키(ASCII)와 스쿠지(SCSI) 등을 제정
• ISO(International Standards Organization)
- 100여 개 나라에서 온 대표자들로 구성된 국가 표준화 기구의 세계적인 연합체
- OSI 등을 제정
- 많은 국가에 ANSI와 같은 국가표준화 기구가 있음
: ISO의 표준안 작성에 참여함
01
Chapter
3. SQL의 이해
SQL의 표준화
 SQL 표준화 과정
• SQL – 89
- 1982년 : ANSI에서 표준화 작업을 시작
- 1986년 : IBM DB2의 SQL을 근간으로 하여 ANSI 표준으로 채택
- 1987년 : ISO의 표준으로도 채택
- 1989년 : ANSI / ISO SQL 표준을 보완 및 확장하여
SQL-89(또는 SQL1)라는 첫 번째 SQL 표준이 정착
01
Chapter
3. SQL의 이해
SQL의 표준화
• SQL - 92
- 1992년에 SQL-89를 대폭 보완한 SQL-92(또는 SQL2)가 표준화
- SQL-92는 다음과 같은 세 개의 표준 준수 수준으로 구분
➊ 도입 수준(Entry Level)
: SQL-89에 최소한의 기능 추가만 요구
➋ 중간 수준(Intermediate Level)
: SQL-89에 상당한 기능 추가를 요구하지만,
지나치게 복잡하거나 시스템에 의존하는 부분은 피함
➌ 완전 수준(Full Level)
: SQL-92 표준의 모든 기능을 구현할 것을 요구
(많은 상용 관계형 DBMS의 SQL은 SQL-92 표준의 도입 수준을 준수)
01
Chapter
3. SQL의 이해
SQL의 표준화
• SQL : 1999
- 1999년에 SQL-92를 확장 및 보완
- SQL : 1999(또는 SQL3)가 표준화
• SQL : 2003
- XML 관련 기능, 윈도우 함수, 표준화된 시퀀스, 자동 생성 값을 가진 열
(IDENTITY 열 포함) 등을 소개
• SQL : 2006
- SQL 데이터베이스에 XML 데이터를 저장, 조작
- XML 및 기존의 SQL 데이터로 추출
- W3C의 XML 쿼리 언어인 XQuery를 SQL 코드에 통합하는 방법을 정의
• SQL : 2008
- 윈도우 함수 보완하고 SQL : 2003의 항목들을 명확히 함
01
Chapter
3. SQL의 이해
표준 SQL을 준수하지 않는 이유
 여러 차례 SQL 표준이 제정되었으나 SQL들끼리 완벽하게
호환되지 않는 이유를 알아보자.
- SQL 표준의 양이 방대하고 복잡해 전부 구현하기가 어렵다.
- SQL 표준이 여러 중요한 부분(인덱스, 파일 저장소 등)에 대해
명시하지 않아 구현 방법이 제각각이다.
- SQL 표준에서 SQL의 구문은 명확히 규정하지만,
SQL의 의미에 대해서는 명확히 정의하지 않아 모호성이 발생한다.
- DBMS개발사들은 이미 많은 고객을 확보했기 때문에 SQL 표준이 기존
기능과 상충될 경우, 과거 호환성을 깨뜨리면서까지 표준을 준수할 생각
이 없다.
01
Chapter
데이터 형식
4. 데이터 형식과 NULL
01
Chapter
데이터 형식
4. 데이터 형식과 NULL
01
Chapter
4. 데이터 형식과 NULL
NULL
 NULL
• 값이 없는 상태
• 숫자 데이터 형식의 0도 아니고, 문자 데이터 형식의 공백이나 빈 문
자도 아님
 실제 관계형 데이터베이스의 테이블에 저장되는 데이터 중
알 수 없거나 (unknown) 적용할 수 없는(not applicable) 값을 나타낸
다.
01
Chapter
4. 데이터 형식과 NULL
NULL
Title 열의 NULL - 성별을 파악하지 못해서 알 수 없음
MiddleName 열의 NULL - 중간 이름이 없기 때문에 적용할 수 없음
- 값이 저장되지 않지만, 공백 문자와 구별하기 위해 이탤릭체로 표시
01
Chapter
5. 예제 학습 및 실습 준비
예제 학습 및 실습 준비
➊ 부록 A를 보면서 SQL Server 2008 Express with Advanced Services
및 관련 소프트웨어들을 모두 설치
➋ 부록 B를 보면서 예제 데이터베이스들을 생성하고, 실습 환경을 설정
➌ 아직 SQL Server Management Studio에 익숙하지 않다면
이를 숙지한다(부록 B, 2절 참고).
➍ 부록 C, 2절에 있는‘예제 데이터베이스의 복원’부분의 설명을
참고하여, 실제로 각 장을 시작하기 전에 각 장별 예제 데이터베이스를
복원한다.