: 업무별로 프로그램이나 파일을 작성하고 처리하는 시스템
: 여러 응용 프로그램들이 공용할 수 있도록 통합되어 저장된 데이터의 집합
DBMS
데이터베이스 관리 시스템 (database management system)
: 응용 프로그램과 데이터베이스 중간에 위치하여 응용 프로그램이 데이터베이스에 직접 접근하지 못하도록 하는 역할
역할1. 데이터베이스를 구축하는 틀 제공
역할2. 효율적인 데이터 검색/저장 (중복된 데이터나 데이터일부 삭제 등)
역할3. 데이터베이스 보호 (함부로 데이터가 수정/삭제되지 않도록)
종류 : 오라클, MySQL, SQLServer
데이터 모델 data model
: 현실 세계의 데이터 구조를 컴퓨터 세계의 데이터 구조로 기술하는 도구
-> 데이터베이스를 구축할 때 체계화된 구조를 명시하기 위한 도구
데이터 모델링
: 데이터베이스화 해야하는 데이터를 분석하여 데이터의 구조, 관계, 제약조건을 정의하는 과정
종류 -> 개념적 모델링, 논리적 모델링, 물리적 모델링
: 데이터베이스로 나타내려는 현실 세계를 구체화하기 위한 밑그림 작업을 하는 과정
entity(엔터티)
, attribute(속성)
, relation(관계)
를 정의함
-> 대학 수업을 예시로 들어보면 아래와 같이 정의할 수 있다.
entity | attribute | relation |
---|---|---|
현실세계를 구성하는 개체 | 개체를 구분하는 특징들 | 개체 간의 관계 |
교수, 학생, 과목 | 교수번호, 교수이름... / 학번, 전화번호... / 과목번호, 과목명... | 지도한다, 지도받는다, 강의한다, 수강한다 |
: 개념적으로 정리된 데이터 모델을 물리적으로 구현하기 위해 형식을 정리하는 과정
데이터의 안정성과 정확성을 보장하기 위해 entity, attribute, relation에 대한 표현과 규칙
정의
-> entity
: 테이블, 리스트 형식
-> attribute
: column, 리스트의 원소
-> relation
: key(primary key, foreign key 등)
: 물리적 데이터베이스를 구현하기 위한 정보를 정리하는 과정
structure구조
, operation연산
, constraint제약조건
등을 정의
: 여러개의 데이터들을 가지고 있고 이 데이터들의 관계를 만들어줘서 그걸로 새로운 정보를 얻어내도록, 유도할 수 있도록 구조화해놓은 것
: 테이블 형식으로 데이터를 정의하고 설명하는 모델
relation
: 개체를 행과 열로 구성되는 테이블 형태로 표현한 것 (학생이라는 표)attribute
: 릴레이션을 구성하는 각각의 열 (학번, 이름, 학과명, 성별, 연락처)degree
: 한 릴레이션을 구성하는 속성의 수 (학번~연락처까지 5)domain
: 하나의 속성이 가질 수 있는 값의 범위tuple
: 릴레이션을 구성하는 각각의 행, 각 속성의 값들의 집합 (각 행)cardinality
: 한 릴레이션의 튜플의 수 (행의 수 5)key
: 각 튜플을 유일하게 식별할 수 있는 속성 또는 속성의 집합candidate key
: 유일성과 최소성을 모두 만족하는 키 (학번, 연락처)primary key
: 후보키 중에서 대표로 선정된 키 (학번을 선택했다고 하자)alternate key
: 기본키로 선정되지 못한 후보키 (여기서는 연락처)1. 일반 집합 연산자
: 합집합, 교집합, 차집합, 교차곱(카티션곱)
-> 카티션 곱 S1 x S2
: 두 집합의 원소들을 교차해서 구할 수 있는 모든 원소의 집합
2. 순수 관계 연산자
: 선택, 추출, 조인
Structured Query Language 구조화 질의어
: 데이터베이스를 구축하고 활용하기 위한 언어
관계형 데이터베이스와 데이터를 조작 및 관리에 활용됨
-> 종류 : 데이터 정의어 DDL, 데이터 조작어 DML , 데이터 제어어 DCL
1. DDL : CREATE
, ALTER
, DROP
2. DML : SELECT
, INSERT
, DELETE
, UPDATE
3. DCL : GRANT
, REVOKE
Q1. DBMS의 역할을 쓰시오.
Q2. 아래 조건에 부합하는 SQL문을 작성하시오.
조건 : <학생> 테이블에서 이름이 '이효원'인 튜플을 삭제하시오
Q3. 아래 소문항에 답하시오.
(1) degree + cardinality 를 구하시오.
(2) primary key가 연락처일 때, alterantive key는?
A1. 응용 프로그램이 데이터베이스에 직접 접근하지 못하도록 하는 역할
DBMS는 데이터베이스를 구축하는 틀을 제공하고, 효율적으로 데이터를 검색하고 저장하는 기능을 제공함.
또한 응용 프로그램들이 데이터베이스에 접근할 수 있는 인터페이스를 제공하고, 장애에 대한 복구 기능, 사용자 권한에 따른 보안성 유지 기능 등을 제공
데이터베이스 내의 정보를 구성하는 컴퓨터 프로그램의 집합으로서, 자료의 중복성을 제거하고 다른 특징들 중에 무결성, 일관성, 유용성을 보장하기 위해서 자료를 제거하고 관리하는 소프트웨어 체계
A2. DELETE FROM 학생 WHERE 이름 = '이효원';
A3.(1) 10
degree는 한 테이블을 구성하는 속성의 수이므로 학번, 이름, 학과명, 성별, 연락처로 5이고,
cardinality는 한 테이블의 튜플(행)의 수이므로 5이다.
따라서 5 + 5 = 10
A3.(2) 학번
key는 각 튜플을 유일하게 식별할 수 있는 속성 또는 속성의 집합이다.
후보가 되는 candidate key는 유일성과 최소성을 모두 만족해야 한다.
- 유일성을 만족하는 키 : 학번, 연락처, 학번+이름, 학번+연락처, 이름+연락처
- 최소성을 만족하는 키 : 학번, 연락처
이므로 후보는 학번과 연락처가 된다.
여기서 primary key를 연락처로 선택했기 때문에
기본키로 선정되지 못한 후보키인 alternate key는 학번이 된다.