본문 바로가기

Database [DB]

(8)
[DB] 08. Database Design Theory 좋은 스키마와 나쁜 스키마 나쁜 스키마의 예시 1 3가지의 이상(anomaly)가 존재 Update anomaly (갱신 이상) - chairman, building, budget 속성값이 deptName 값에 의존적이므로 학과명이 반복될 때 해당 속성값이 반복적으로 나오게 됨 / 갱신 시 모든 값을 동시에 갱신하여야 함 Delete anomaly (삭제 이상) - 학과에서 제공하는 마지막 과목이 삭제되면 학과에 대한 다른 정보들도 함께 삭제되는 현상 Insert anomaly (입력 이상) - 새로운 학과의 학과 정보를 입력하고자 하면 그 학과가 개설하는 과목이 없으면 입력할 수 없음 (주 키가 cID이므로) 나쁜 스키마의 예시 2 설계 목표 특정 관계 R이 좋은 형태인지 결정하는 것 관계 R이 좋은 ..
[DB] 07. Entity-Relationship Data Model Entity and Relationship 개체와 관계성 ER 데이터 모델 (Entity-Relationship 데이터 모델) 데이터베이스는 개체들의 집합과 개체들 사이의 관계로 모델링될 수 있음 ER 모델의 모델링 기본 요소 - Entity (Entity Set) - property : attribute - Relationship (Relationship Set) - property : attribute - ER 모델에서 지원되는 Property는 오직 속성(attribute)뿐임 Entity 개체 존재하며 다른 객체와 구별 가능한 객체를 의미 어떤 것이든지 개체가 될 수 있음 (사람, 회사, 이벤트 등) 개체는 속성(attribute)를 가짐 (사람은 이름과 주소를 가짐) 개체 집합은 같은 속성(pr..
[DB] 06. Application Development Embedded SQL (내장 SQL) SQL을 프로그래밍 언어(데이터베이스 응용 프로그램)에서 사용하는 방법 정적 방식 : SQL을 애플리케이션 코드 내에서 사용 (내장 SQL: ESQL/C, ESQL/C++ 등 / SQLJ) 동적 방식 : SQL API를 사용 (SQL CLI(call level interface), ODBC, JDBC) 내장 SQL SQL 표준은 C, C++, Java, Cobol, Pascal, PL/1, Fortran과 같은 다양한 프로그래밍 언어에 대한 SQL의 내장을 정의 C, C++, Java 등을 Host Language라고 부름 내장 SQL 프로그램은 컴파일 전에 전처리기에 의해 처리되어야 함 전처리기는 내장 SQL을 API 호출로 대체, 결과 프로그램은 Host-Lan..
[DB] 05. Major Functionalities of Database Systems Views View : 특정 사용자로부터 특정 데이터를 숨기는 매커니즘을 제공 개념(conceptual) 스키마에 포함되지 않지만 사용자에게 “가상(virtual) 관계”로 보이는 모든 관계를 View라고 함 뷰의 목적 데이터 보호 사용자 편리성 제공 질의 간소화 뷰 생성 : create view 뷰_이름 as ; ( : 유효한 SQL 표현식) 뷰는 다른 테이블로부터 파생된 단일(single) 테이블 뷰는 물리적 형식이 존재하지 않음 = Virtual Relation 가상 관계 (가상 테이블) (tuple을 실제로 가지지 않음) 가상 관계와 대비되는 tuple을 가지는 테이블을 “Base Relation” 베이스 관계라고 함 뷰는 뷰를 사용하는 질의에서 대체될 표현식을 저장함 (새 관계를 만드는 것과는 ..
[DB] 04. SQL 2 Aggregate Functions (집계 함수) 데이터베이스 시스템은 5개의 집계 함수를 지원 관계의 속성값에 작용하고 값을 반환 avg : 평균값 min : 최솟값 max : 최댓값 sum : 값의 합 count : 값의 개수 집계 함수 예제 Group By 절 Having 절 ‘group by’ 절로 생성된 그룹에 대하여 임의 조건을 명시하는 절 having 절의 조건문은 그룹 형성 이후에 적용 where 절의 조건문은 그룹 형성 이전에 적용 having 절과 where 절의 차이 예제 Null 값과 집계 함수 count(*)를 제외한 모든 집계 함수는 집계된 속성의 null 값을 가진 tuple을 무시 모든 값이 null인 경우, count는 0을 반환 다른 모든 집계 함수는 null을 반환 Jo..
[DB] 03. SQL 1 Database Languages DBMS는 사용자가 데이터베이스에서 원하는 작업을 표현할 수 있도록 데이터베이스 언어를 지원 기능적 측면에서의 분류 DDL (data definition language) : 데이터 정의 언어 DML (data manipulate language) : 데이터 조작 언어 DCL (data control language) : 데이터 제어 언어 객체를 표현하는 방식 측면에서의 분류 절차적 언어 비절차적 언어 DDL (data definition language) 데이터베이스 스키마를 정의하기 위한 명세 각 속성의 도메인 정의 명세 무결성 제약 조건에 대한 명세 DDL 컴파일러는 데이터 사전에 저장되는 테이블의 집합을 생성 DML (data manipulate language)..
[DB] 02. Relational Data Model Relational Data Model 관계형 데이터 모델 : 데이터베이스를 관계 + 무결성 제약 조건의 모음으로 나타냄 Student 관계는 5개의 tuple과 7개의 attribute로 구성 맨 위는 속성 헤드 (attribute head) relation = table tuple = record = row attribute = column 속성 Attributes 속성은 도메인을 가짐 도메인 : 속성값으로 허용할 수 있는 값의 집합 속성값은 원자(atomic)이어야 함 (분할될 수 없는 값) atomic 속성 타입 : integer, real, char, varchar, decimal, date, time, timestamp 등 (문자열은 원자값으로 취급) non-atomic 속성 타입 : 다중값 ..
[DB] 01. Introduction to Databases Databases 데이터베이스 : 서로 연관 있는 데이터의 모임 데이터베이스 관리 시스템 (DBMS, Database Management System) : 데이터베이스를 관리하는 소프트웨어 DBMS는 데이터베이스를 정의, 생성, 조직하며 여러 의미 있는 기능을 제공함 데이터베이스 시스템 (DBS, Database System) : DB + DBMS DBMS의 장점 데이터 추상화 데이터 접근의 용이성 : 데이터 접근을 위한 언어 제공, 편리한 사용자 인터페이스 제공 데이터 중복 및 불일치성에 대한 제어 용이 데이터 무결성 제약 조건 강화 : Integrity Constraint(IC) 강화 용이 (add, update, delete 등) 갱신 원자성 제공 (Atomicity of updates) : 고장이..