pangil_kim 2025. 2. 15. 04:41
728x90
안건

- 강의 개요

- 강의 동기

- 행정 사항

 

강의 개요

1. 강의: ECE30030/ITP30010 데이터베이스 시스템

- ITP-1분반 (영어): 월/목 14:30-15:45 @OH401

- ITP-2분반 (영어): 월/목 16:00-17:15 @OH401

 

2. 강사: 홍참길 (Charmgil Hong)

- 사무실: NTH201

- 이메일: charmgil@handong.edu

- 오피스 아워: 추후 공지

 

3. 조교: 추후 공지

 

4. 강의 목표:

- 학생들이 데이터베이스 관리 시스템의 개념과 기초 메커니즘을 이해할 수 있도록 한다.

- 학생들이 모델링 언어로 데이터베이스 설계를 표현하고 주어진 제약 조건에 따라 설계를 분석할 수 있도록 한다.

- 학생들이 관계형 데이터베이스 언어(구조적 쿼리 언어)를 명확하게 설명할 수 있도록 한다.

- 학생들이 데이터베이스에서 데이터를 추출, 변환 및 로드(ETL)하고 최신 알고리즘을 사용하여 분석할 수 있도록 한다.

 

5. 선수 과목: 이산수학

 

6. 주교재

- Abraham Silberschatz, Henry F. Korth, S. Sudarshan. Database System Concepts, 7th edition. McGraw Hill. 2019.

 

7. 보조 참고서

- Alex Petrov. Database Internals: A Deep Dive into How Distributed Data Systems Work. O'Reilly Media. 2019.

- Raghu Ramakrishnan, Johannes Gehrke. Database Management Systems, 3rd edition. McGraw Hill. 2003.

 

8. 강의 개요

1) 이 강의는 영어로 진행된다 (ITP30010만 해당)

- 숙제, 시험 및 수업 내 모든 의사소통에서 영어를 사용해야 한다.

- 제출물이 영어가 아닌 경우 학점을 받을 수 없다.

 

동기

1. 데이터베이스

- 현실 세계의 일부 측면을 모델링한 상호 관련된 데이터의 조직화된 집합.

- 데이터베이스는 대부분의 컴퓨터 애플리케이션의 핵심 구성 요소 중 하나이다.

 

2. 데이터베이스 예시

   1) 대학

      - 등록, 성적

   2) 금융 시장

      - 신용 카드 거래

      - 주식 및 채권의 매매 정보

      - 실시간 시장 데이터

   3) 기업 정보

      - 판매: 고객 제품, 구매

      - 회계: 지불, 영수증, 자산

      - 인사: 직원 프로필, 급여, 세금

   4) 항공사

      - 예약, 일정

   5) 웹 서비스

      - 온라인 상거래: 고객 정보, 제품 정보, 주문 추적

      - 온라인 광고

   6) 통신

      - 통화 기록

      - 문자

      - 데이터 사용량

      - 월간 청구서

   7) 웹 서비스

   8) 기업

   9) 대학

 

3. 초기 데이터에서 데이터베이스 애플리케이션은 파일 시스템 위에 직접 구축되었으며, 이로 인해 다음과 같은 문제가 발생했다

   1) 데이터 중복(redundancy) 및 불일치(inconsistency)

      (1) 데이터가 여러 파일 형식 및 위치에 저장됨 -> 정보의 중복 발생

   2) 데이터 접근의 어려움

      (1) 각 새로운 작업을 수행하기 위해 새로운 프로그램을 작성해야 함

      - 엑셀 vs 스프레의 차이점

   3) 데이터 고립(isolation)

      (1) 의미: 한 작업에서 이루어진 변경 사항이 언제, 어떻게 다른 작업에 표시되는지를 결정하는 속성

      (2) 파일로는 제어할 수 없음

   4) 무결성(Integrity) 문제

      (1) 무결성 제약 조건(예: 계좌 잔액 >= 0)이 프로그램 코드에 “숨겨져” 명시적으로 기술되지 않음

   5) 동시성 문제

      (1) 통제되지 않은 동시 접근이 불일치로 이어질 수 있음

   6) 보안 문제

      (1) 세분화된 사용자 접근 제어를 제공하기 어려움

 

   결론 : 데이터베이스 시스템은 위의 모든 문제에 대한 해결책을 제공한다!

 

데이터베이스 시스템의 간략한 역사

1. ~ 1960년대 초:

   1) 저장을 위한 자기 테이프를 사용한 데이터 처리

      (1) 테이프는 오직 순차 접근만 제공

   2) 입력을 위한 펀치 카드

임의 접근 (Random Access) 순차 접근(Sequential Access)
- 임의로 모든 데이터에 접근할 수 있다.
- 빠른 데이터 검색
- RAM, 하드 디스크, SSD, DVD 등
- 데이터는 순서대로 접근해야 한다
- 느린 데이터 검색
- 테이프 드라이브

 

2. 1960년대 후반과 1970년대:

   1) 하드 디스크가 데이터에 직접 접근할 수 있게 함

   2) 네트워크 및 계층적 데이터 모델 사용

   3) 테드 코드(Ted Codd)가 관계형 데이터 모델(=Table)을 정의함

      (1) 이 작업은 ACM 튜링 상(1981)을 수상함

      (2) IBM 연구소가 시스템 R 프로토타입을 시작함

      (3) UC 버클리(Michael Stonebraker)가 인그레스(Ingres) 프로토타입을 시작함

      (4) 오라클이 첫 상용 관계형 데이터베이스를 출시함

 

3. 1980년대:

   1) 연구 관계형 프로토타입이 상용 시스템으로 발전함

      (1) SQL이 산업 표준이 됨

   2) 병렬 및 분산 데이터베이스 시스템

      (1) 위스콘신, IBM, 테라데이터

   3) 객체 지향 데이터베이스 시스템

 

4. 1990년대:

1) 대규모 의사 결정 지원 및 데이터 마이닝 애플리케이션

2) 대규모 다중 테라바이트 데이터 웨어하우스

3) 웹 상거래의 출현

 

5. 2000년대:

   1) 빅 데이터 저장 시스템

      (1) 구글 빅테이블, 야후 PNuts, 아마존

      (2) NoSQL 시스템

   2) 빅 데이터 분석: SQL을 넘어

      (1) 맵 리듀스

   3) 추가 설명: 모든 회사 이름과 제품 이름은 해당 회사의 상표 또는 등록 상표임

 

6. 2010년대~현재:

   1) SQL 리로드

      (1) 맵 리듀스 시스템을 위한 SQL 프론트엔드

      (2) 대규모 병렬 데이터베이스 시스템

      (3) 다중 코어 메인 메모리 데이터베이스

   2) 추가 설명: 모든 회사 이름과 제품 이름은 해당 회사의 상표 또는 등록 상표임

 

일정(임시)

1. 우리는 4가지 주요 주제를 학습할 것이다

   1) R-DBMS 사용(엔지니어 관점에서)

   2) 데이터 설계 및 조작

   3) R-DBMS 내부 이해

   4) 데이터베이스 시스템 및 데이터 과학의 새로운 동향(NoSQL)

 

2) 학기 일정 (잠정적)

번호 주제 번호 주제
1 - 관리, 소개
- DBMS, 관계형 데이터 모델
9 트랜잭션
2 - 관계 대수
- DBMS 설치
10 - 트랜잭션
- 데이터베이스 저장소
3 구조적 질의 언어 (DML) 11 - 데이터베이스 저장소
4 - 구조적 질의 언어 (DDL)
- 퀴즈
12 - 인덱스
- 퀴즈 (잠정)
5 개체-관계(ER) 다이어그램 13 인덱스
6 정규화 이론 14 키, 함수/프로시저, 트리거
7 고급 SQL 15 관계형 데이터 이상
8 - 고급 SQL, 제약조건, 뷰
- 중간고사
16 기말고사

 

행정 사항

1. 평가

   1) 퀴즈: 5%

      (1) 2번의 퀴즈를 본다.

   2) 중간고사: 23%

   3) 기말고사: 25%

   4) 과제: 20%

      (1) 2주에 하나씩 나온다. (총 6개)

      (2) 각 마감일 전에 작업을 제출해야 한다.

      (3) 마감일 이후 24시간 이내의 늦은 제출은 과제 점수의 -20% 패널티와 함께 허용된다.

         - 마감일로부터 24시간 이후의 제출은 거부된다.

      (4) 추가 연장 요청은 마감일 전에 합당한 사유를 제출해야 한다.

      (5) 학기 동안 5~6개의 과제가 있으며, 다양한 활동으로 구성된다.

         - 교과서 독해를 포함한 단답형 질문

         - 문제 해결

         - SQL 프로그래밍 과제

   5) 기말 프로젝트: 20%

      (1) 학생들이 팀을 이루어 데이터베이스를 설계하고 성능을 최적화한다.

         - DB 애플리케이션을 구축할 필요는 없다.

         - 대량의 데이터와 목표 작업이 제공된다.

         - 목표는 수업에서 가장 좋은 성능을 발휘하는 데이터베이스 설계 및 구현을 제시하는 것이다.

   6) 참여도: 7%

      (1) 오프라인 회의는 학생들의 질문으로 구성되며, 학생들이 적극적으로 참여하고 수업을 이끌도록 권장된다.

         - 학생들은 질문할 뿐만 아니라 다른 사람의 질문에 답하는 것도 장려된다.

      (2) 토론 중 한국어로 말할 수 있다.

      (3) 모든 발언은 참여 점수에 포함된다.

   10) 출석

      (1) 오프라인 회의는 매주 1회 개최된다.

         - LMS에서 사전 녹화된 강의가 제공된다.

         - 오프라인 회의는 요약 및 토론을 위해 열린다.

      (2) 출석은 성적에 직접 반영되지는 않지만, 전체 수업의 ¼ 이상 결석할 경우 자동으로 "F"를 받게 된다.

   11) 다음 사항 중 하나라도 해당되면 실패(F) 처리된다

      (1) 모든 형태의 부정행위나 학문적 비양심 행위 실시

      (2) 전체 회의의 3/4 이상 불참

         - 3번의 지각은 1회의 결석으로 간주된다.

      (3) 중간고사 또는 기말고사를 치르지 않음



728x90
댓글수0