230914 TIL #190 정처기 실기 - #3 데이터 입출력 구현 - 1

김춘복·2023년 9월 14일
0

TIL : Today I Learned

목록 보기
190/543
post-custom-banner

Today I Learn

오늘은 정처기 실기 파트중 DB에 관한 내용을 공부했다.


데이터 입출력 구현 1

DBMS

데이터베이스 관리 시스템. 사용자의 요구에 따라 정보를 생성주고 데이터베이스를 관리해주는 SW

  • 필수기능 : 정의(타입,구조,제약조건명시), 조작(CRUD), 제어(무결성,보안 제어)

스키마(Schema) - A

데이터베이스의 구조와 제약조건에 관한 전반적인 명세

  • 외부스키마 : 사용자가 개인의 입장에서 필요로 하는 DB의 논리적 구조를 정의한 것
  • 개념스키마 : DB의 전체적인 논리적 구조. 조직 전체의 DB로 하나만 존재함
  • 내부스키마 : 물리적 저장장치 입장에서 본 DB 구조. 실제로 저장될 레코드의 형식, 내부 레코드의 물리적 순서 등을 나타낸다.

DB 설계 순서 - A

요구조건분석 -> 개념적 설계 -> 논리적 설계 -> 물리적 설계 -> 구현

  1. 요구조건 분석 : 요구 조건 명세서 작성

  2. 개념적 설계 - A
    다른사람과 통신하기 위해 현실세계에 대한 인식을 추상적 개념으로 표현하는 과정
    개념 스키마, 트랜잭션 모델링, 요구조건 명세서를 DBMS에 독립적인 E-R다이어그램으로 작성

  3. 논리적 설계 - A
    현실세계에서 발생하는 자료를 특정 DBMS가 지원하는 자료구조로 변환(매핑)하는 과정
    DBMS에 따라 서로 다른 논리적 스키마를 설계하는 단계.
    트랜잭션의 인터페이스를 설계하고 정규화를 통해 스키마를 평가 및 정제

  4. 물리적 설계 - A
    논리적 설계에서 논리 구조로 표현된 데이터를 물리적 저장장치에 저장할 수 있는 물리적 구조의 데이터로 변환하는 과정
    파일의 저장 구조 및 엑세스 경로를 결정. 테이블 정의서 및 명세서가 산출된다.

  5. 구현 : 목표 DBMS의 DDL로 DB생성. 트랜잭션 작성


데이터 모델 - A

현실세계의 정보들을 단순화, 추상화 해 체계적으로 표현한 개념

  • 데이터 모델의 구성요소
    구조 : 논리적으로 표현된 개체 타입들간의 관계. 데이터 구조 및 정적 성질 표현
    연산 : DB에 저장된 실제 데이터를 처리하는 작업에 대한 명세. DB를 조작하는 기본 도구
    제약 조건 : DB에 저장될 수 있는 실제 데이터의 논리적 제약 조건

E-R 다이어그램

사각형 - 개체(Entity) 타입
마름모 - 관계(Relationship) 타입
타원 - 속성(Attribute)
이중타원 - 다중값 속성(복합 속성)
밑줄 타원 - 기본키 속성
복수 타원 - 복합 속성(성명 - 성 / 이름)
관계 : 1:1 1:N N:M 등 개체간 관계에 대한 대응 수를 선위에 기술
선 : 개체타입과 속성을 연결


관계형 DB의 릴레이션 구조 - A

릴레이션은 데이터를 표(테이블) 형태로 표현한 것.
구조를 나타내는 릴레이션 스키마와 실제 값을 가진 튜플을 의미하는 릴레이션 인스턴스로 구성된다.

  • 릴레이션의 구조
    학생 릴레이션에서 학번, 이름, 학과에 대한 정보가 있다고 하면,
    학번, 이름, 학과는 속성(Attribute). 19001 김춘복 경영 처럼 가로행은 튜플(Tuple),
    경영, 컴공, 디자인 처럼 한 속성에 대한 세로열은 도메인(Domain).

튜플 - A

릴레이션을 구성하는 각각의 행. 속성의 모임. 파일 구조에서 레코드와 같은 의미.
튜플의 수를 카디널리티(Cardinality)나 기수, 대응수라고 한다.

속성 - A

DB를 구성하는가장 작은 논리적단위. 개체의 특성을 기술. 파일 구조상 데이터 항목, 필드에 해당.
속성의 수를 Degree, 차수라고 한다. (속성이 4개면 degree 차수도 4개)

도메인

하나의 속성이 취할 수 있는 같은 타입의 원자값들의 집합.
ex) 성별의 도메인은 "남"과 "여"


키(Key)

DB에서 조건에 맞는 튜플을 찾거나 정렬할 때 기준이 되는 속성.

후보키(Candidate Key) - A

튜플을 유일하게 식별하기 위해 사용되는 속성들의 부분 집합. 기본키로 사용할 수 있는 속성들.

  • 후보키의 조건
  1. 유일성(Unique) : 하나의 키 값으로 하나의 튜플만 유일하게 식별할 수 있어야 한다.
  2. 최소성(Minimality) : 키를 구성하는 속성 하나를 제거하면 유일하게 식별 불가능하도록 최소의 속성으로 구성되어야 한다. 꼭 필요한 속성들로만 구성되어있나?

기본키(Primary Key)

후보키 중에서 선정된 Main key. 후보키의 특징 그대로 물려받는다.
중복 불가능. 유일성. Not Null. 외래키로 참조 가능.

대체키(Alternate Key)

= 보조키. 후보키가 둘 이상일때, 기본키를 제외한 나머지 후보키.

슈퍼키(Super Key) - A

속성들의 집합으로 구성된 키. 해당 키로 릴레이션에서 튜플을 서로 구분만 할 수 있으면 슈퍼키.
릴레이션을 구성하는 모든 튜플에대해 유일성은 만족하지만 최소성은 만족하지 못한다.

외래키(Foreign Key)

다른 릴레이션의 기본키를 참조하는 속성.
한 릴레이션에 속한 속성 A와 참조 릴레이션의 기본키인 B가 같은 도메인 상에서 정의되었을 때 A를 외래키라고 한다.

무결성(Integrity)

DB에 저장된 데이터가 현실 세계의 실제값과 일치하는지 정확성.

  • 개체 무결성 : 기본키는 null이나 중복값을 가질 수 없다. 기본키로 튜플의 구분이 되어야 한다.
  • 참조 무결성 : 외래키 값은 참조 릴레이션의 기본키와 같거나 아예 null이어야 한다.
    즉, 참조할 수 없는 외래키 값을 가질 수 없다.

관계대수

관계형 DB에서 원하는 정보와 그 정보를 검색하기 위해 어떻게 유도하는가를기술하는 절차적 언어.
릴레이션을 처리하기 위해 연산자와 연산규칙 제공. 피연산자와 연산 결과 모두 릴레이션.
주어진 릴레이션 조작을 위한 연산의 집합.

순수 관계 연산자 - A

  • Select : 시그마(σ)기호. 조건을 만족하는 튜플의 부분 집합을 구해 새로운 릴레이션을 만드는 연산
    릴레이션의 행에 해당하는 튜플을 구하는 것이므로 수평연산이라고도 한다.

  • Project : 파이(π) 기호. 속성 리스트에 제시된 속성 값만 추출해 새로운 릴레이션을 만드는 연산
    릴레이션의 열에 해당하는 속성을 추출하는 것이므로 수직연산자라고도 한다.

  • Join : ⋈ 기호. 공통 속성을 중심으로 두 릴레이션을 하나로 합쳐 새로운 릴레이션을 만드는 연산.
    교차 곱을 수행한 다음 select를 수행하는 결과와 같다.

  • Division : ÷ 기호. X ⊃ Y 두 개의 릴레이션 R(X)와 S(Y)가 있을 때, R의 속성이 S의 속성값을 모두 가진 튜플에서 S가 가진 속성을 제외한 속성만을 구하는 연산.

일반 집합 연산자 - A

  • 합집합(Union) : U 기호.두 릴레이션에 존재하는 튜플의 합집합을 구하되, 중복되는 튜플은 제거.
    합집합의 카디널리티 <= 두 릴레이션 카디널리티의 합

  • 교집합(Intersection) : ∩ 기호. 두 릴레이션의 튜플의 교집합을 구하는 연산.
    교집합의 카디널리티 <= Min(두 릴레이션의 카디널리티)

  • 차집합(Difference) : - 기호. 두 릴레이션에 존재하는 튜플의 차집합을 구하는 연산.
    차집합의 카디널리티 <= 릴레이션의 카디널리티

  • 교차곱(Cartesian Product) : X 기호. 두 릴레이션에 있는 튜플들의 순서쌍을 구하는 연산.
    교차곱의 Degree = 두 릴레이션의 Degree 합.
    교차곱의 Cardinality = 두 릴레이션의 Cardinality 곱.

profile
Backend Dev / Data Engineer
post-custom-banner

0개의 댓글