이미 소장하고 있다면 판매해 보세요.
|
제1편 데이터베이스 개념과 데이터 모델
제1장 데이터베이스 시스템 1.1 기존 파일 처리 방식의 문제점 6 1.2 데이터베이스 방식 11 1.2.1 데이터베이스의 정의11 1.2.2 데이터베이스 방식의 이점13 1.2.3 데이터베이스 방식의 비용16 1.3 데이터베이스 시스템의 구성요소 18 1.3.1 데이터18 1.3.2 하드웨어19 1.3.3 소프트웨어19 1.3.4 사용자22 1.4 데이터 모델 23 1.4.1 데이터 모델의 분류24 1.4.2 삼단계 스키마 구조25 1.5 데이터베이스 관리시스템의 구성 요소와 기능 27 1.5.1 데이터베이스 관리시스템 엔진29 1.5.2 사용자 접속장치30 1.5.3 데이터베이스 정의/조작기30 1.5.4 시스템 목록기30 1.5.5 무결성 관리기31 1.5.6 성능 관리기33 1.5.7 병행 제어기34 1.5.8 예비/복구 관리기36 1.5.9 보안 관리기36 1.5.10 기타 편의 장치37 1.6 요약 37 제2장 관계형 데이터 모델 2.1 구조 41 2.1.1 관계의 특성42 2.1.2 타플, 속성, 영역43 2.1.3 대안적 용어44 2.2 무결성 제약 45 2.2.1 주키와 개체 무결성 제약45 2.2.2 영역 제약47 2.2.3 참조 무결성 제약47 *2.3 관계 대수어 53 *2.4 관계 해석어 66 2.4.1 타플 관계 해석어67 2.4.2 영역 관계 해석어68 2.5 요약 69 제3장 개체-관계성 데이터 모델 3.1 개체 집합 73 3.1.1 개체와 속성74 3.1.2 개체 집합76 3.1.3 식별자 속성78 3.2 관계성 집합 79 3.2.1 대응비와 참여도80 3.2.2 차수82 3.2.3 종속 개체 집합84 3.3 확장 개체-관계성 데이터 모델 85 3.3.1 일반화/상세화86 3.3.2 배타성과 완전성87 3.4 개체-관계성도 88 3.4.1 개체-관계성도 개요: 첸 모델과 까마귀발 모델88 3.4.2 개체 집합과 속성의 파악92 3.4.3 일반화 계층구조의 파악97 3.4.4 관계성 집합의 파악99 3.5 UML 클래스 다이어그램 106 3.6 개체-관계성 모델의 문제점 109 3.6.1 부채꼴 함정111 3.6.2 균열 함정113 3.7 요약 115 제4장 정규화 이론 4.1 정규화의 개념 122 4.1.1 구조화된 관계123 4.1.2 구조화된 관계의 문제점125 4.2 함수적 종속과 정규화 127 4.2.1 함수적 종속127 4.2.2 1차 정규형128 4.2.3 2차 정규형130 4.2.4 3차 정규형133 *4.2.5 보이스-코드 정규형136 *4.3 타유형의 종속과 정규화 139 4.3.1 다중값 종속과 4차 정규형139 4.3.2 결합 종속과 5차 정규형142 4.3.3 영역-키 정규형143 4.4 정규화된 관계의 통합 143 4.4.1 사례143 4.4.2 관계의 통합148 4.5 요약 152 제2편 데이터베이스 질의어 제5장 데이터베이스 질의어: SQL과 QBE 5.1 SQL의 배경 161 5.2 테이블의 생성 165 5.3 데이터의 검색 168 5.3.1 단순 질의169 5.3.2 중복 행의 제거 171 5.3.3 특수 연산자172 5.3.4 검색 결과의 정렬176 5.3.5 수식과 집단함수의 활용177 5.3.6 집단 검색 조건181 5.3.7 복수 테이블의 검색182 5.3.8 SELECT 내포문189 5.3.9 자체 결합을 이용한 데이터의 검색193 5.3.10 상관 내포절195 5.3.11 EXISTS 명령어196 5.3.12 결과 테이블의 결합(UNION/INTERSECT/EXCEPT 연산자)198 5.4 QBE 언어 202 5.5 요약 212 부록 1: Oracle SQL* Plus 사용법 215 부록 2: MS Access 사용법 224 제6장 고급 SQL 6.1 무결성 향상 기능 232 6.1.1 미확인 값 제약233 6.1.2 주키 제약233 6.1.3 영역 제약234 6.1.4 참조 무결성 제약236 *6.1.5 기타 사업관련 제약238 6.2 데이터 정의를 위한 고급 기능 239 6.2.1 테이블의 생성239 6.2.2 테이블의 변경242 6.2.3 테이블의 삭제244 6.2.4 색인의 생성과 삭제244 6.3 데이터 갱신 246 6.3.1 INSERT 명령246 6.3.2 DELETE 명령248 6.3.3 UPDATE 명령249 6.4 가상 테이블 250 6.4.1 가상 테이블의 개념250 6.4.2 가상 테이블의 정의251 6.4.3 가상 테이블의 갱신253 *6.4.4 WITH CHECK OPTION253 *6.5 내장 SQL 255 6.5.1 Oracle PL/SQL의 기본 구조255 6.5.2 변수의 정의256 6.5.3 결과물의 출력257 6.5.4 단일 레코드의 검색258 6.5.5 복수 레코드의 검색259 6.5.6 오류의 처리264 *6.6 API와 ODBC 264 6.7 요약 265 부록 1: Oracle Database에서의 테이블 생성 270 부록 2: PL/SQL 스크립트 파일 271 제3편 데이터베이스 설계 제7장 데이터베이스 설계 방법론과 개념적 설계 7.1 정보시스템 개발 수명주기 277 7.2 데이터베이스 개발 수명주기 278 7.2.1 데이터베이스 요구사항 분석279 7.2.2 데이터베이스 설계281 7.2.3 데이터베이스 개발283 7.2.4 데이터베이스 운영 및 유지보수283 7.3 개념적 데이터베이스 설계 284 7.3.1 개체 집합의 파악287 7.3.2 관계성 집합의 파악288 7.3.3 개체-관계성도의 작성291 7.3.4 개체 집합과 관계성 집합에 관련된 속성의 파악291 7.3.5 속성의 영역 결정293 7.3.6 주키의 선정294 7.3.7 상세화와 일반화 관계성의 파악295 7.3.8 사용자 트랜잭션의 검정296 7.3.9 개체-관계성도의 수정298 7.3.10 사용자 검토298 7.4 요약 300 제8장 논리적 데이터베이스 설계 8.1 각 관점별 논리적 설계 304 8.1.1 개체 집합의 전환306 8.1.2 관계성 집합의 전환308 8.1.3 정규화 검사323 8.1.4 사용자 트랜잭션 검증324 8.1.5 개체-관계성도 수정324 8.1.6 무결성 제약의 정의324 8.1.7 사용자 검토324 8.2 명문가구 사례(매장의 사용자 관점) 325 8.2.1 개체 집합의 전환325 8.2.2 관계성 집합의 전환326 8.2.3 정규화 검사328 8.2.4 사용자 트랜잭션 검증329 8.2.5 개체-관계성도 수정329 8.2.6 무결성 제약의 정의330 8.2.7 사용자 검토330 8.3 전역 논리적 모델의 구축 332 8.4 CASE 도구의 활용 335 8.5 요약 337 제9장 물리적 데이터베이스 설계 9.1 물리적 설계의 개념과 단계 341 9.2 전역 논리적 모델의 전환 342 9.2.1 기본 테이블 설계342 9.2.2 유도 속성의 설계344 9.2.3 무결성 제약 설계344 9.3 물리적 저장 방식의 설계 347 9.3.1 트랜잭션 분석347 9.3.2 파일 조직 선택348 9.3.3 이차 색인 선택350 9.3.4 통제된 중복의 도입 결정351 9.3.5 디스크 용량의 추정354 9.4 보안 장치의 설계 355 9.5 시스템 운영 감시와 조정 355 9.6 요약 356 부록: 기본 테이블 생성 358 제4편 데이터베이스 관리 제10장 병행 제어와 데이터베이스의 복구 10.1 논리적 트랜잭션과 물리적 트랜잭션 371 10.2 병행 제어 374 10.2.1 갱신 분실의 문제374 10.2.2 직렬 스케줄375 10.2.3 차단 방식376 10.2.4 버전 방식380 10.3 데이터베이스의 복구 382 10.3.1 데이터베이스 손상의 원인382 10.3.2 트랜잭션과 복구383 10.3.3 복구 장치384 10.3.4 복구 방식385 10.3.5 복구 방식의 적용387 10.4 요약 389 제11장 데이터베이스 보안 11.1 데이터베이스 보안의 개념 394 11.1.1 데이터베이스 관리시스템의 보안 기능394 11.1.2 데이터베이스 보안과 데이터베이스 관리인395 11.2 접근 통제 395 11.3 허가 규칙 396 11.3.1 허가 규칙 행렬397 11.3.2 SQL의 허가 규칙398 11.4 가상 테이블 402 11.4.1 가상 테이블을 통한 보안 유지402 11.4.2 통계 데이터의 제공403 *11.4.3 사례403 11.5 암호화 407 11.6 위험 분석 407 11.7 요약 409 제5편 데이터베이스의 발전 동향 제12장 분산 데이터베이스 12.1 분산 데이터베이스의 발전 배경 417 12.2 분산 데이터베이스의 개념 418 12.3 분산 데이터베이스의 유형 421 12.4 분산 데이터베이스의 장단점 422 12.4.1 분산 데이터베이스의 장점423 12.4.2 분산 데이터베이스의 단점424 12.5 분산 데이터베이스의 설계 425 12.5.1 복제425 12.5.2 수평 분할426 12.5.3 수직 분할427 12.5.4 분산 설계 전략428 12.6 분산 데이터베이스 관리시스템 430 12.6.1 위치 무관성430 12.6.2 복제 무관성431 12.6.3 병행 무관성432 12.6.4 실패 무관성434 12.7 분산 데이터베이스에서의 질의 처리 436 12.8 CAP 법칙 440 12.9 요약 441 제13장 비즈니스 인텔리전스와 데이터 웨어하우스 13.1 비즈니스 인텔리전스 445 13.2 정보시스템의 유형과 데이터의 성격 447 13.2.1 트랜잭션 데이터와 의사결정 지원 데이터447 13.2.2 의사결정 지원을 위한 데이터베이스 요구사항450 13.3 데이터 웨어하우스의 개념 452 13.3.1 데이터 웨어하우스의 정의453 13.3.2 데이터 웨어하우스의 구조454 13.3.3 데이터의 추출, 변환, 적재457 13.4 데이터 웨어하우스와 온라인 분석처리 460 13.4.1 온라인 분석처리의 기능460 13.4.2 온라인 분석처리의 유형464 13.5 관계형 모델을 통한 데이터 웨어하우스의 설계 468 13.5.1 성형 스키마469 13.5.2 다중 사실 테이블472 13.5.3 눈송이 스키마473 13.6 다차원 데이터를 위한 SQL 475 13.6.1 CUBE 명령어475 13.6.2 ROLLUP 명령어477 13.6.3 GROUPING SETS 명령어479 13.7 데이터 웨어하우스의 효과와 문제점 480 13.8 데이터 마이닝 482 13.8.1 데이터 마이닝의 개념483 13.8.2 데이터 마이닝의 유형483 13.8.3 데이터 마이닝의 단계485 13.9 요약 486 제14장 빅 데이터와 NoSQL 14.1 빅 데이터 491 14.2 빅 데이터 분석을 위한 데이터베이스 493 14.2.1 Hadoop493 14.2.2 NoSQL494 14.2.3 NewSQL499 14.2.4 데이터 모델의 선택500 14.3 MongoDB 502 14.3.1 MongoDB 데이터 모델503 14.3.2 MongoDB 질의어507 14.3.3 MongoDB 데이터 모델링541 14.4 요약 545 부록: MongoDB 사용법 549 부 록 부록 A CASE 도구를 사용한 명문가구 사례 A.1 데이터 모델링을 위한 CASE 도구 566 A.2 Erwin의 시작 568 A.3 논리적 모델링 570 A.3.1 개체 집합571 A.3.2 1:1 또는 1:다의 관계성 집합572 A.3.3 다:다의 관계성 집합576 A.3.4 일원 관계성 집합과 삼원 관계성 집합580 A.3.5 일반화/상세화 관계성 집합581 A.3.6 명문가구의 논리적 모델링584 A.4 물리적 모델링 586 A.5 데이터베이스 스키마 생성 587 부록 B 저장 장치와 파일 조직 B.1 이차 저장 장치 601 B.1.1 마그네틱 디스크 장치602 B.1.2 디스크 장치의 용량602 B.1.3 디스크 장치의 판독/기록 속도603 B.1.4 마그네틱 테이프 장치605 B.2 직접 저장 장치의 레코드 저장 방법 605 B.2.1 물리적 저장 단위: 블록606 B.2.2 레코드 저장 방법606 B.3 파일 조직 608 B.3.1 순차 파일 조직609 B.3.2 색인 순차 파일 조직609 B.3.3 직접 파일 조직613 부록 C 객체중심 데이터 모델 C.1 객체중심 데이터 모델의 등장 배경 617 C.1.1 다양한 유형의 데이터 관리의 필요성 증대618 C.1.2 관계형 데이터 모델의 취약점619 C.2 객체중심 데이터 모델의 기본 개념 621 C.2.1 객체와 객체 클래스621 C.2.2 캡슐화622 C.2.3 메시지623 C.2.4 유전성624 C.2.5 식별성625 C.2.6 영역626 C.3 객체중심 데이터 모델의 설계 626 C.3.1 객체중심 데이터 모델과 개체-관계성 데이터 모델의 비교627 C.3.2 객체중심 데이터 모델의 관계성 표현627 C.4 객체중심 데이터베이스 표준 630 C.4.1 객체 모델631 C.4.2 객체 정의어(ODL)634 C.4.3 객체 조작어643 C.5 객체-관계형 데이터베이스 시스템 646 색 인 색인 649 |
서길수의 다른 상품
|
* '유튜브'에서 '서길수 데이터베이스'를 검색하시면 무료 강의를 들으실수 있습니다.
(https://www.youtube.com/@kssuh_db) 제가 대학에서 강의를 해온 지난 30년 동안 늘 데이터의 중요성을 강조해 왔는데, 지금처럼 기업 활동에 있어서 데이터의 역할이 중요했던 적은 없었습니다. 앞으로 데이터는 새로운 세상을 여는 열쇠가 될 것이며, 데이터의 중요성은 점점 더 부각될 것입니다. 매일 생성되는 데이터의 절대량이 늘어나고, 데이터 분석에 대한 필요성도 증가하면서 데이터베이스와 관련한 기술에도 많은 변화들이 있었으며, 이번 개정판에서는 그러한 변화들을 수용하고자 노력하였습니다. 첫째, 최근 빅 데이터와 함께 많은 관심을 받고 있는 NoSQL에 대한 소개를 추가하였습니다. 특히 NoSQL의 한 종류인 MongoDB의 데이터 모델과 질의어에 대해 14장에서 상세하게 소개하고, 실습을 위한 안내서를 부록에 추가하였습니다. 둘째, Oracle, MS Access, Erwin, MongoDB 등 실습용 소프트웨어의 가장 최근 버전을 설치하고, 사용하는 방법을 해당되는 장이나 책 뒤쪽 부록에 수록하였습니다. 셋째, 개체-관계성 데이터 모델을 관계형 데이터 모델 바로 뒤로 옮겼습니다. 사실 논리적인 순서로 보면 개체-관계성 데이터 모델을 먼저 공부하고, 관계형 데이터 모델을 다음에 공부하는 것이 더 맞습니다. 그러나 처음에 너무 개념적인 부분만 강조하다 보면 학생들이 흥미를 잃어버리는 경우를 종종 발견하게 됩니다. 따라서 직관적으로 이해하기 쉬운 관계형 데이터 모델을 앞 부분에 위치시키고, 이어서 개체-관계성 데이터 모델을 공부하도록 했습니다. NoSQL 등의 새로운 데이터 모델이 등장했지만, 여전히 관계형 데이터 모델은 현재까지 가장 널리 사용되고 있으며, 데이터베이스를 공부하는 사람이라면 반드시 알아야 할 분야입니다. 마지막으로 시장에서 크게 성공하지 못한 객체중심 데이터 모델은 본문에서 삭제하고, 책 뒤쪽의 부록으로 돌렸습니다. 그러나 캡슐화, 유전성 등의 객체중심 개념은 중요하기 때문에 참고할 가치는 충분히 있습니다. 그 외에도 모든 장에서 새로운 내용이 부분적으로 추가되거나, 기존 내용이 개선되었습니다. 이제 데이터베이스는 컴퓨터 공학도나 정보시스템 전공자만 공부하는 과목이 아닙니다. 제가 학부와 대학원에서 강의하면서 문헌정보학, 의학, 간호학, 공학 등 여러 다양한 전공의 학생들이 데이터베이스에 대해 많은 관심을 가지고 있음을 보았습니다. 이번 개정판에서도 3판의 정신을 그대로 이어받아 가능한 수식과 알고리즘의 나열을 배제하고, 어떤 전공자도 쉽게 접할 수 있도록 내용을 풀어 쓰는 것을 기본 철학으로 삼았습니다. 다만 학부 수준에서 다소 어렵다고 생각되는 부분은 별표(*)를 붙여 난이도를 구별하였습니다. 3판과 마찬가지로 명문가구라는 가상의 회사 사례를 처음부터 끝까지 사용함으로써 설명에 일관성을 부여하고자 노력하였습니다. 또한 각 편마다 그림과 글을 실어 딱딱한 데이터베이스 기술서에 인문학적 상상력을 불어 넣고자 했습니다. 늘 함께 해주신 하나님과 4판이 나오기까지 도움을 주신 여러분께 감사 드립니다. 연세대학교의 동료 교수님들(특히, 매주 점심의 난상토론을 통해 많은 영감을 준 구본일, 엄영호, 박선주 교수님), 투썬월드의 이종현 의장님과 박종일 님, 박영사의 마찬옥 편집위원님 등 많은 분들의 격려와 도움으로 이번 개정판이 나오게 되었습니다. 3판까지 좋은 그림으로 책을 장식해 준 아내, 그리고 기꺼이 이 책을 위해 본인들의 글과 그림을 제공하고, 표지 디자인까지 맡아준 민지와 상구에게 이 자리를 빌어 고마움과 함께 사랑한다는 말을 전합니다. |