Presentation is loading. Please wait.

Presentation is loading. Please wait.

CHAPTER 06. 데이터베이스 자료의 조직적 집합체_데이터베이스 시스템의 이해

Similar presentations


Presentation on theme: "CHAPTER 06. 데이터베이스 자료의 조직적 집합체_데이터베이스 시스템의 이해"— Presentation transcript:

1 CHAPTER 06. 데이터베이스 자료의 조직적 집합체_데이터베이스 시스템의 이해
제목

2 파일 처리 시스템의 문제점과 그 대안인 데이터베이스에 대해 공부한다.
다양한 데이터 모델을 알아보고, 각 데이터 모델의 데이터 표현 방법을 공부한다. 관계형 데이터베이스의 구조와 관계형 대수를 공부한다. SQL을 이용하여 릴레이션을 생성하고, 질의를 처리하는 방법을 공부한다. 모바일 데이터베이스의 특징과 활용 분야를 공부한다.

3 1. 데이터베이스의 개요 2. 데이터 모델 3. 관계형 데이터베이스 4. SQL 릴레이션 생성 릴레이션 삭제 릴레이션 변경
파일 처리 시스템 데이터베이스 데이터베이스 관리 시스템 데이터베이스 언어 데이터베이스 사용자 2. 데이터 모델 계층형 데이터 모델 네트워크형 관계형 객체 지향형 3. 관계형 데이터베이스 관계형 데이터베이스의 구조 무결성 제약 조건 관계형 대수 4. SQL 릴레이션 생성 릴레이션 삭제 릴레이션 변경 검색 삽입 삭제 갱신 5. 모바일

4 1. 데이터베이스의 개요 데이터베이스(DB:Database)란? - 컴퓨터에 저장된 데이터들을 통합하여 저장하고 관리하는 모임 데이터베이스 관리시스템(DBMS)이란? - 데이터베이스를 관리(데이터 저장, 검색, 수정 등)하는 프로그램

5 1. 데이터베이스의 개요 파일 처리 시스템 데이터베이스 데이터베이스 관리 시스템 1 데이터베이스 언어 2 데이터베이스 사용자
3 데이터베이스 관리 시스템 4 데이터베이스 언어 5 데이터베이스 사용자

6 1.1 파일 처리 시스템 각 응용 프로그램마다 별도의 데이터 파일을 유지 파일처리시스템의 문제점
데이터 종속 : 응용프로그램과 데이터 파일간의 의존관계 -> 파일구성이 변경되면 응용프로그램도 변경 불가피 데이터 중복 : 각 응용프로그램마다 동일한 데이터를 별도로 유지 -> 공간낭비, 수정시 데이터 불일치 발생

7 1.2 데이터베이스 데이터베이스에 저장된 데이터의 특징 데이터베이스의 특징
한 조직의 여러 응용 프로그램들이 저장된 데이터를 공유할 수 있도록 데이터를 통합•관리 데이터베이스에 저장된 데이터의 특징 통합된 데이터(integrated data) : 연관된 데이터의 모임 저장된 데이터(stored data) : 보조기억장치에 저장 운영 데이터(operational data) : 운영에 필요한 데이터가 구조적으로 통합되어 있음 공용 데이터(shared data) : 다수 사용자와 응용프로그램이 공유 데이터베이스의 특징 실시간 접근성 : 사용자나 응용프로그램의 요구를 즉시 처리, 응답 계속적인 변화 : 삭제, 갱신 등으로 값이 지속적으로 변화 동시 공유 : 다수의 사용자나 응용프로그램이 동시에 접근 내용에 의한 참조 : 위치를 몰라도 원하는 데이터를 검색하여 제공

8 1.3 데이터베이스 관리 시스템 사용자와 응용 프로그램에 편리하고 효율적인 데이터베이스 사용 환경을 제공하는 소프트웨어
DB구조 명시, DB생성, 데이터 검색, 수정처리 접근통제 및 다수 사용자 동시 접근관리 Oracle, DB2, Informix, Sybase, MS SQL Server, MySQL, Access 등

9 1.3 데이터베이스 관리 시스템 DBMS 도입에 따른 장점 ① 데이터의 중복과 불일치 감소 ② 사용자에게 더 나은 서비스 제공
③ 시스템의 융통성이 향상됨 ④ 시스템 개발 및 유지 비용 감소 ⑤ 표준화 시행이 용이 ⑥ 보안이 향상됨 ⑦ 데이터 무결성이 향상됨 ⑧ 조직체의 요구 사항을 파악하여 조정할 수 있음 ⑨ 시스템의 고장으로부터 데이터베이스를 복구할 수 있음 ⑩ 데이터베이스의 공유와 동시 접근이 가능함

10 1.4 데이터베이스 언어 DB시스템을 구축, 관리에 사용하는 언어 데이터 정의어 데이터 조작어 데이터 제어어
데이터 저장 구조, 데이터 접근 방법, 데이터 형식 등 데이터베이스를 구축하거나 수정할 때 사용하는 언어 데이터 조작어 데이터베이스에 저장된 데이터를 검색, 수정, 삽입, 삭제할 때 사용하는 언어 데이터 제어어 데이터를 보호하고 관리하는 언어 데이터베이스의 무결성 유지, 보안 및 접근 제어, 시스템 장애로부터의 복구, 병행 수행 제어 기능 등을 수행

11 1.5 데이터베이스 사용자 응용 프로그래머 최종 사용자 데이터베이스 관리자
프로그래밍 언어(C, COBOL 등)를 사용하여 특정 응용 프로그램이나 인터페이스를 구현하는 사람 최종 사용자 데이터의 검색, 삽입, 삭제, 갱신 등을 위해 데이터베이스 시스템을 사용하는 사람 데이터베이스 관리자 데이터 정의어(DDL)와 데이터 제어어(DCL)를 사용하여 데이터베이스 스키마(테이블 구조)를 생성하고 관리하는 사람

12 데이터베이스 관리자의 주요 업무에 대해 설명하시오.
파일 처리 시스템과 비교할 때 DBMS 도입에 따른 장점으로 적합하지 않은 것은? (가) 데이터의 중복과 불일치가 감소한다. (나) 시스템의 개발 및 유지 보수 비용이 증가한다. (다) 데이터베이스의 공유와 동시 접근이 가능하다. (라) 표준화 시행이 용이하다.

13 2. 데이터 모델 계층형 데이터 모델 네트워크형 데이터 모델 DB설계과정에서 데이터의 논리구조를 표현하기 위해 사용하는 도구
데이터베이스 구조를 명시하기 위한 개념들의 집합 데이터베이스의 구조 + 이런 구조에서 허용되는 연산 + 이런 구조와 연산에 대한 제약 조건 1 계층형 데이터 모델 2 네트워크형 데이터 모델 3 관계형 데이터 모델 4 객체 지향형 데이터 모델

14 2.1 계층형 데이터 모델 데이터는 레코드와 링크로 구성된 트리 형태 링크로 연결된 레코드 집합은 부모-자식 관계를 표현
부모 노드와 자식 노드 간의 관계는 일 대 다 관계 ADABAS, IMS, DMS-II 등

15 2.2 네트워크형 데이터 모델 그래프 구조에 기반 레코드를 노드로, 레코드와 레코드 간의 관계는 간선(edge)
레코드와 레코드 간의 관계는 다 대 다 관계 CODASYL

16 2.3 관계형 데이터 모델 행과 열로 구성된 2차원 테이블에 데이터를 저장
테이블은 데이터베이스에서 표현하는 하나의 엔티티에 관한 정보를 저장 DB2, Oracle, MySQL, MS SQL Server, Access 등

17 2.4 객체 지향형 데이터 모델 객체 지향 프로그래밍의 패러다임을 기반
Informix, Universal Server, Oracle 9i 등

18 2차원 테이블에 데이터를 저장하며, 사용자가 필요한 데이터만 기술하면 DBMS가 데이터의 저장 위치와 접근 방법을 결정하는 데이터 모델은 무엇인가?
(가) 계층형 데이터 모델 (나) 네트워크형 데이터 모델 (다) 관계형 데이터 모델 (라) 객체 지향형 데이터 모델

19 3. 관계형 데이터베이스 1 관계형 데이터베이스의 구조 2 무결성 제약 조건 3 관계형 대수

20 3.1 관계형 데이터베이스의 구조 릴레이션(테이블)으로 구성된 데이터 항목들의 집합 릴레이션은 행과 열로 구성된 2차원 테이블
하나의 릴레이션은 하나의 엔티티에 관한 데이터를 저장

21 3.1 관계형 데이터베이스의 구조 용어 튜플(레코드) : 각 행.
속성 : 각 열에 부여된 이름 예) 학번, 이름, 학과명, 성별, 성적 도메인 : 입력 가능한 값의 범위 예) 성별 속성의 도메인은 ‘남’ 또는 ‘여’ 차수(degree) : 속성의 갯수 카디널리티(cardinality) : 튜플의 수 널(null) : 속성 값이 정해지지 않았거나 없는 경우의 값 키 : 릴레이션에서 튜플을 유일하게 식별할 수 있는 속성 또는 속성집합. 후보키, 기본키 등이 있음 후보 키 : 튜플을 구분할 수 있는 최소한의 속성만으로 구성된 키. (학번), (성명, 학과명) 기본 키 : 2개 이상의 후보 키 중 선택된 키 대체 키 : 기본 키가 아닌 키 외래 키 : 다른 릴레이션의 기본키를 참조하며 릴레이션 간 관계를 나타내는 역할

22 3.2 무결성 제약 조건 무결성 제약조건 : 도메인, 개체 무결성, 참조 무결성
권한을 가진 사용자들로부터 DB의 정확성(일관성)을 지키는 것 DB상태가 만족해야 하는 조건으로 DB갱신 시 마다 DBMS가 자동검사 도메인 제약 조건 각 속성의 값은 반드시 도메인에 속한 하나의 값 속성의 기본 값과 가능한 값들의 범위, 널 값의 허용 여부 등을 지정 개체 무결성 제약 조건 기본 키를 구성하는 어떤 속성도 널 값을 가질 수 없다는 것 참조 무결성 제약 조건 외래 키의 값은 참조된 릴레이션의 기본 키 값과 같아야 한다는 것

23 3.3 관계형 대수 관계형 데이터베이스에 데이터를 삽입하고, 저장된 데이터를 검색, 수정, 삭제하는 등의 기능을 수행하는 언어
사용자가 원하는 데이터가 무엇(what)인지와 검색 방법(how)까지 기술하는 절차적 언어 (예) Employee 릴레이션과 Department 릴레이션을 이용

24 3.3 관계형 대수 선택 연산 주어진 릴레이션에서 특정 조건을 만족하는 튜플을 구하는 연산 σ조건식(릴레이션)
(예) Employee 릴레이션에서 직위가 ‘과장’인 튜플을 선택하는 연산 σ직위=“과장”(Employee)

25 3.3 관계형 대수 추출 연산 주어진 릴레이션에서 원하는 속성만 발췌하는 연산 형식 π속성 리스트(릴레이션)
(예) Employee 릴레이션에서 ‘직위’ 속성만 추출 연산 π직위(Employee)

26 3.3 관계형 대수 합집합 연산 두개의 릴레이션 중 어느 한쪽 또는 양쪽에 모두 존재하는 튜플을 구하는 연산으로 형식
(π속성 리스트(릴레이션)) ∪ (π속성 리스트(릴레이션)) (예) Employee 릴레이션에서 직위가 ‘과장’인 튜플의 부서번호와 Department 릴레이션에서 사무실 위치가 ‘B201’인 튜플의 부서번호를 모두 구하는 연산 (π부서번호(σ직위=“과장”(Employee))) ∪ (π부서번호(σ사무실=“B201”(Department)))

27 3.3 관계형 대수 교집합 연산 두 개의 릴레이션에 모두 존재하는 튜플을 구하는 연산으로 형식
(π속성 리스트(릴레이션)) ∩ (π속성 리스트(릴레이션)) (예) Employee 릴레이션에서 과장과 계장이 함께 근무하는 부서번호를 구하는 연산 (π부서번호(σ직위=“과장”(Employee))) ∩ (π부서번호(σ직위=“계장”(Employee)))

28 3.3 관계형 대수 차집합 연산 릴레이션에 속하지만 다른 릴레이션에는 속하지 않는 튜플을 구하는 연산으로 형식
(π속성 리스트(릴레이션)) — (π속성 리스트(릴레이션)) (예) 소속된 직원이 한 명도 없는 부서의 부서번호를 구하는 연산 (π부서번호(Department)) — (π부서번호(Employee))

29 3.3 관계형 대수 카티전 곱 연산 두 개의 릴레이션에 존재하는 모든 튜플의 조합을 구하는 연산 릴레이션1 X 릴레이션2
(예) Product 릴레이션과 Store 릴레이션에 대한 카티전 곱을 구하는 연산 Product X Store

30 3.3 관계형 대수 조인 연산 두 개의 릴레이션에서 특정 조건을 만족하는 튜플을 결합하여 하나의 튜플로 만드는 연산
릴레이션1 ▷◁ 조건식 릴레이션2 (예) Employee 릴레이션과 Department 릴레이션을 조인하는 연산 Employee ▷◁ Employee.부서번호=Department.부서번호 Department

31 3.3 관계형 대수 조인 연산 (예) 조인 연산 결과를 이용하여 총무부에서 근무하는 사원의 이름을 검색
π성명(σ부서명=“총무부”(Employee ▷◁ Employee.부서번호=Department.부서번호 Department))

32 3.3 관계형 대수 나누기 연산 두 개의 릴레이션 R(X, Y)와 S(Y)에 대한 나누기division 연산, R(X, Y) ÷ S(Y)의 경우 릴레이션 S의 모든 Y값에 관련된 릴레이션 R의 X값을 선택 릴레이션1 ÷ 릴레이션2 (예) Product2 릴레이션을 Store 릴레이션으로 나누는 연산 Product2 ÷ π영업점(σ영업점 코드=“S1000”(Store))

33 아래의 릴레이션 R과 S에 대해 다음 물음에 답하시오.
( )은(는) 주어진 릴레이션에서 원하는 속성만 발췌하는 연산이다.

34 4. SQL 관계형 데이터베이스의 조작과 관리에 사용되는 데이터베이스 질의용 언어
IBM의 DB2, 마이크로소프트의 Access와 SQL Server를 비롯하여 Oracle, Sybase, Informix 등에서 구조화 질의어로 널리 사용 원하는 데이터가 무엇인지만 기술하고 비절차적 언어 3가지 기능 데이터 정의 기능 데이터 조작 기능 데이터 제어 기능

35 4. SQL 1 릴레이션 생성 2 릴레이션 삭제 3 릴레이션 변경 4 검색 5 삽입 6 삭제 7 갱신

36 4.1 릴레이션 생성 CREATE TABLE 문의 형식 ‘[ ]’ 기호는 선택 사항 ‘|’ 기호는 ‘또는’을 나타냄
속성에 널 값을 허용하지 않으려면 ‘NOT NULL’을 제약 조건으로 기술 CREATE TABLE 릴레이션명 (속성1 자료형1 [NULL ┃ NOT NULL], 속성2 자료형2 [NULL ┃ NOT NULL], 속성n 자료형n [NULL ┃ NOT NULL]);

37 4.1 릴레이션 생성

38 4.1 릴레이션 생성 BookTable 릴레이션의 정의문 CREATE TABLE BookTable
(title_id CHAR(10) NOT NULL, title VARCHAR(50) NOT NULL, ISBN CHAR(10) NOT NULL, price INT NOT NULL, pubdate DATETIME, section_part CHAR(10), author CHAR(10) NOT NULL);

39 4.2 릴레이션 삭제 DROP TABLE 문의 형식 BookTable 릴레이션을 삭제하는 명령 DROP TABLE 릴레이션명;

40 4.3 릴레이션 변경 ALTER TABLE 문의 형식 BookTable 릴레이션에 publisher 속성을 추가하는 명령
ALTER TABLE 릴레이션명 ADD 속성명 자료형; ALTER TABLE 릴레이션명 MODIFY 속성명 자료형; ALTER TABLE 릴레이션명 DROP 속성명; ALTER TABLE BookTable ADD publisher CHAR(20);

41 4.4 검색 SELECT 문의 형식 SELECT [DISTINCT] 속성_리스트 FROM 릴레이션_리스트 [WHERE 조건]
[GROUP BY 속성_리스트] [HAVING 조건] [ORDER BY 속성_리스트 [ASC ┃ DESC]];

42 4.4 검색 모든 속성 검색 SELECT * FROM BookTable;

43 4.4 검색 일부 속성 검색 SELECT title, price, author, pubdate FROM BookTable;

44 4.4 검색 가격이 30,000원 이하인 도서 검색 SELECT title_id, title, price
FROM BookTable WHERE price<=30000;

45 4.4 검색 section_part가 ‘공학’인 도서 검색
SELECT title_id, title, price, author, section_part FROM BookTable WHERE section_part=‘공학’;

46 4.4 검색 검색 결과의 정렬(오름차순) SELECT title_id, title, price, author, section_part FROM BookTable ORDER BY price;

47 4.4 검색 검색 결과의 정렬(내림차순) SELECT title_id, title, price, author, section_part FROM BookTable ORDER BY price DESC;

48 4.4 검색 조인 연산을 이용한 검색 SELECT BookTable.title_id, PubTable.pub_no, BookTable.title, BookTable.price, BookTable.author FROM BookTable JOIN PubTable ON BookTable.title_id=PubTable.title_id;

49 4.5 삽입 하나의 튜플 삽입 INSERT 문의 형식 BookTable 릴레이션에 하나의 튜플을 삽입하는 명령
INSERT INTO 릴레이션명(속성1, 속성2, …, 속성n) VALUES (값1, 값2, …, 값n); INSERT INTO BookTable(title_id, title, ISBN, price, author) VALUES (‘K301’, ‘전자공학개론’, ‘ ’, 23000, ‘박창순’);

50 4.5 삽입 하나의 튜플 삽입 INSERT문의 수행 결과 SELECT * FROM BookTable;

51 4.5 삽입 여러 개의 튜플 삽입 INSERT 문의 형식
BookTable 릴레이션에 대한 SELECT문의 수행 결과 검색된 2개의 튜플이 ScienceTable 릴레이션에 삽입하는 명령 INSERT INTO 릴레이션명(속성1, 속성2, …, 속성n) SELECT 속성_리스트 FROM 릴레이션_리스트 WHERE 조건; INSERT INTO ScienceTable(title_id, title, ISBN, price, pubdate, section_part, author) SELECT title_id, title, ISBN, price, pubdate, section_part, author FROM BookTable WHERE section_part = ‘자연과학’;

52 4.5 삽입 여러 개의 튜플 삽입 INSERT문의 수행 결과 SELECT * FROM ScienceTable;

53 4.6 삭제 DELETE문의 형식 BookTable 릴레이션에서 title_id가 ‘K301’인 튜플을 삭제하는 명령
DELETE FROM 릴레이션명 WHERE 조건; DELETE FROM BookTable WHERE title_id=‘K301’;

54 4.6 삭제 DELETE 문의 수행 결과 BookTable 릴레이션에서 모든 튜플을 삭제하는 명령 SELECT *
FROM BookTable; DELETE FROM BookTable;

55 4.7 갱신 UPDATE 문의 형식 BookTable 릴레이션에서 WHERE절의 조건 (section_part=‘공학’)을 만족하는 튜플의 price 속성 값을 갱신하는 명령 UPDATE 릴레이션명 SET 속성1=수식1, 속성2=수식2, …, 속성n=수식n WHERE 조건; UPDATE BookTable SET price=price-500 WHERE section_part=‘공학’;

56 4.7 갱신 속성 값의 갱신 SELECT * FROM BookTable;

57 다음 중에서 기존 릴레이션에 속성을 추가, 삭제 또는 변경하는 기능을 제공하는 SQL 명령어는 무엇인가?
(가) 데이터 정의 기능 (나) 데이터 조작 기능 (다) 데이터 제어 기능 (라) 데이터 질의 기능 다음 중에서 기존 릴레이션에 속성을 추가, 삭제 또는 변경하는 기능을 제공하는 SQL 명령어는 무엇인가? (가) DROP TABLE (나) ALTER TABLE (다) SELECT (라) INSERT

58 5. 모바일 데이터베이스 모바일 기기를 이용해 현장 업무에서 발생한 데이터를 가공한 후, 동기화 기능을 통해 중앙 서버로 전송하는 능력을 갖춘 데이터베이스 CloudScape, DB2 Everyplace, ASAAdaptive Server Anywhere, PointBase Mobile Edition, SQLite 등 특징 저사양 기기에 탑재 가능 서버 측 데이터베이스의 복제 및 동기화 기능 내장형(embedded) 데이터베이스 동작 과정

59 다음 중에서 모바일 데이터베이스의 특징에 해당하지 않는 것은 무엇인가?
(가) 저사양 기기에도 탑재 가능 (나) 서버 측 데이터베이스의 복제 및 동기화 기능 (다) 내장형 데이터베이스 (라) 고속의 대용량 데이터베이스

60 1. 파일 처리 시스템의 문제점 2. 데이터베이스 3. 데이터베이스 관리 시스템(DBMS) 4. 데이터베이스 언어 5
1. 파일 처리 시스템의 문제점 2. 데이터베이스 3. 데이터베이스 관리 시스템(DBMS) 4. 데이터베이스 언어 5. 데이터베이스 사용자 6. 데이터 모델 7. 관계형 데이터베이스 8. 릴레이션 9. 차수(degree) 와 카디널리티(cardinality) 10. 널(null) 11. 키(key) 12. 무결성 제약 조건 13. 관계형 대수 14. 선택 연산 15. 추출 연산 16. 합집합 연산 17. 교집합 연산 18. 차집합 연산 19. 카티전 곱 연산 20. 조인 연산 21. 나누기 연산 22. SQL 23. 모바일 데이터베이스

61


Download ppt "CHAPTER 06. 데이터베이스 자료의 조직적 집합체_데이터베이스 시스템의 이해"

Similar presentations


Ads by Google