[CS101] Part7. 데이터베이스

이효원·2024년 2월 18일
0

한빛CS101

목록 보기
12/15
post-thumbnail

🖥️ 파일 처리 시스템

: 업무별로 프로그램이나 파일을 작성하고 처리하는 시스템

🖥️ 데이터베이스 database

: 여러 응용 프로그램들이 공용할 수 있도록 통합되어 저장된 데이터의 집합

🖥️ DBMS

DBMS 데이터베이스 관리 시스템 (database management system)
: 응용 프로그램과 데이터베이스 중간에 위치하여 응용 프로그램이 데이터베이스에 직접 접근하지 못하도록 하는 역할
역할1. 데이터베이스를 구축하는 틀 제공
역할2. 효율적인 데이터 검색/저장 (중복된 데이터나 데이터일부 삭제 등)
역할3. 데이터베이스 보호 (함부로 데이터가 수정/삭제되지 않도록)

종류 : 오라클, MySQL, SQLServer

🖥️ 데이터 모델링

데이터 모델 data model
: 현실 세계의 데이터 구조를 컴퓨터 세계의 데이터 구조로 기술하는 도구
-> 데이터베이스를 구축할 때 체계화된 구조를 명시하기 위한 도구

데이터 모델링
: 데이터베이스화 해야하는 데이터를 분석하여 데이터의 구조, 관계, 제약조건을 정의하는 과정
종류 -> 개념적 모델링, 논리적 모델링, 물리적 모델링

1. 개념적 모델링

: 데이터베이스로 나타내려는 현실 세계를 구체화하기 위한 밑그림 작업을 하는 과정

entity(엔터티), attribute(속성), relation(관계) 를 정의함
-> 대학 수업을 예시로 들어보면 아래와 같이 정의할 수 있다.

entityattributerelation
현실세계를 구성하는 개체개체를 구분하는 특징들개체 간의 관계
교수, 학생, 과목교수번호, 교수이름... / 학번, 전화번호... / 과목번호, 과목명...지도한다, 지도받는다, 강의한다, 수강한다

2. 논리적 모델링

: 개념적으로 정리된 데이터 모델을 물리적으로 구현하기 위해 형식을 정리하는 과정

데이터의 안정성과 정확성을 보장하기 위해 entity, attribute, relation에 대한 표현과 규칙 정의
-> entity : 테이블, 리스트 형식
-> attribute : column, 리스트의 원소
-> relation : key(primary key, foreign key 등)

3. 물리적 모델링

: 물리적 데이터베이스를 구현하기 위한 정보를 정리하는 과정

structure구조, operation연산, constraint제약조건 등을 정의

🖥️ 관계형 데이터

관계형 데이터베이스

: 여러개의 데이터들을 가지고 있고 이 데이터들의 관계를 만들어줘서 그걸로 새로운 정보를 얻어내도록, 유도할 수 있도록 구조화해놓은 것

관계형 데이터 모델 relational data model

: 테이블 형식으로 데이터를 정의하고 설명하는 모델

  • relation : 개체를 행과 열로 구성되는 테이블 형태로 표현한 것 (학생이라는 표)
  • attribute : 릴레이션을 구성하는 각각의 열 (학번, 이름, 학과명, 성별, 연락처)
  • degree : 한 릴레이션을 구성하는 속성의 수 (학번~연락처까지 5)
  • domain : 하나의 속성이 가질 수 있는 값의 범위
    (학과명: 학교에 있는 학과만 / 성별: 남,여 중에서만)
  • tuple : 릴레이션을 구성하는 각각의 행, 각 속성의 값들의 집합 (각 행)
  • cardinality : 한 릴레이션의 튜플의 수 (행의 수 5)
  • key : 각 튜플을 유일하게 식별할 수 있는 속성 또는 속성의 집합
    (이름, 학과명, 성별 은 중복되기 때문에 키로 사용하기 적합하지 않음)
    • candidate key : 유일성과 최소성을 모두 만족하는 키 (학번, 연락처)
      • 유일성을 만족하는 키 : 학번, 연락처, 학번+이름, 학번+연락처, 이름+연락처
      • 최소성을 만족하는 키 : 학번, 연락처
    • primary key : 후보키 중에서 대표로 선정된 키 (학번을 선택했다고 하자)
    • alternate key : 기본키로 선정되지 못한 후보키 (여기서는 연락처)

관계형 데이터 연산

1. 일반 집합 연산자
: 합집합, 교집합, 차집합, 교차곱(카티션곱)
-> 카티션 곱 S1 x S2 : 두 집합의 원소들을 교차해서 구할 수 있는 모든 원소의 집합

2. 순수 관계 연산자
: 선택, 추출, 조인

🖥️ SQL

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. 아래 소문항에 답하시오.

스크린샷 2024-02-18 오후 10 29 16

(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는 학번이 된다.

0개의 댓글