<개체와 속성>

개체

개체의 정의

  • 레코드에 대응하는 개념
  • 독립적으로 존재

 

개체 타입

  • 개체 스키마
  • 유일한 식별자에 의해 식별 가능해야함
  • 개체 타입에는 속성들이 포함되어 있어야 함
  • 다른 개체 타입과 최소 한 개 이상의 관계가 있어야 함

 

개체 타입을 명명하는 일반적인 기준

  • 실제 업무에서 사용하는 용어 사용
  • 약어 사용하지 않는다
  • 단수 명사 사용
  • 이름은 유일해야함
  • 의미에 따라 이름 부여

개체 어커런스 - 레크드의 값

개체 집합 - 개체 어커런스들의 집합

 

속성
  • 더 이상 분리되지 않은 최소의 데이터 단위
  • 필드
  • 각각의 개체 타입은 속성의 집합으로 설명 가능
  • 하나의 속성 : 하나의 개체 타입에만 존재

 

속성에 따른 분류

  • 기본 속성
    • 모든 속성
    • 일반적, 많이 사용됨
    • 다른 속성에 영향 받아 생성되는거 제외
  • 설계 속성
    • 설계를 하면서 도출되는 속성
    • 새로 만들거나 변형하여 정의하는 속성
  • 파생 속성(Derived Attribute) 
    • 다른 속성으로부터 변형되어 생성되는 속성
    • 계산 된 값

개체 구성 방식에 따른 분류

  • 기본키 속성
    • 개체를 식별할 수 있는 속성
  • 외래키 속성
    • 다른 개체와 관계에 포함된 속성
  • 일반 속성
    • 개체에 포함 됨 || 외래키에 포함 안됨

 

속성 후보 선정 원칙

  • 원시 속성으로 보이는 후보는 제거하지 않는다
    • 다시 재현할 수 없는거
    • 제거하면 정보가 소실됨
  • 소그룹별로 후보군을 만들고, 가장 근접한 개체에 할당
    • 모든 개체가 드러나지 않아서

 

식별자
  • 각각의 개체 구분할 수 있는 결정자
  • 모든 개체 타입에는 반드시 하나 이상의 식별자 있어야함. 

식별자 구분

  • 주 식별자, 보조식별자
    • 주 : 개체 타입의 대표성을 나타내는 유일한 식별자
      • 개체 타입이 하나에 한개
      • 물리테이블 -> 기본키
    • 보조 : 주 식별자 대신, 보조적으로 식별 가능
      • 하나 이상 가능
  • 내부 식별자, 외부식별자
    • 내부 : 스스로 생성되어 존재
    • 외부: 다른 개체 타입과의 관계에 의해 주 식별자의 속성 상속받음,
      • 주 식별자 영역에 포함될 수도, 일반 속성에 포함될 수도
      • 연결자 역활
  • 단일 식별자, 복합 식별자
    • 단일 속성으로 식별 되는 가 
    • 단일 : 주 식별자의 구성이 한 가지 속성
    • 복합 : 두 개의 이상의 속성으로 구성
  • 원조(Artificial) 식별자, 대리(Surrogate)식별자
    • 대체 여부에 따름
    • 대리 : 주 식별자가 복합일 때, 여러개 속성 묶어 하나의 속성으로

 

후보 식별자 조건

  • 각 인스턴스 유일하게 식별 O
  • 나머지 직접 속성할 수 있어야 함
  • 널 X
  • 개념적으로 유일해야함
  • 자주 변경하지 않는 것

 

인조 식별자 조건

  • 최대한 범용적인 값
  • 유리한 값 만들고 싶을 때
  • 편의성, 단순성, 의미의 체계화, 내부적 사용시 

 

 

개체 정의서
  • 개체, 속성, 식별자가 모두 확정 -> 명세서 작성

개체 정의서 포함 항목

  • 개체 타입명
  • 개체 타입 설명
  • 동의어/유의어
  • 개체 타입 구분
  • 관련 속성들
  • 식별자

 

<정보 모델링과 데이터 모델링>

모델링

개념

  • 정보 모델링 : 개체 -> 정보 구조로 표현하는 과정
  • 데이터 모델링 : 정보 구조 -> 논리적인 데이터 구조 (컴퓨터가 이해O)

 

모델링 단계

  • 현실 단계  : 개체 파악, 개체 실체 만들어냄
  • 개념 단계 : 공통점 찾아 추상화 (그림으로 표현?)
  • 논리 단계 : 데이터들의 관계로 구성 (레코드 필드,,)

 

데이터 모델링

구성요소

  • 논리적 구조
  • 연산
    • 데이터 삽입, 삭제, 변경
  • 제약조건
    • 데이터 구조에서 허용할 수 있는 관계를 명세화

 

목적

  • 정보 요구에 정확한 이해
  • 효율적인 의사소통 수단
  • 유지 보수 비용 감소 효과 기대
  • 개발 기초

 

특성

  • 업무 흐름 파악 용이
  • 무결성 보장 O
  • 데이터 공유를 통한 중복 제거, 일관성 있는 정보 제공 O

 

데이터 모델링 절차

데이터 모델링 절차

0. 요구사항

1. 개념(Conceptual) 데이터 모델링

  • 정보 내용 만족
  • 성능 목적 지원
  • E-R모델
  • 논리 데이터 모델의 기초
  • 개념 모델링 2단계
    • 개념 스키마 모델링
      • E-R다이어그램
    • 트랜잭션 모델링
      • 고차원 명세로 기술

2. 논리 데이터 모델링 (분석)

  • 개념
    • DB 개발 과정 첫 단계
    • 가장 핵심
    • 개념 구조 -> 논리적 구조
    • DB 관리자가 사용
    • 관계형 데이터 모델, 계층적 데이터 모델, 네트워크 데이터 모델
    • 정규화하여 모델링함
    • 완전하고 정확하게 표현
    • 특정 DBMS로부터 독립적
  • 논리적 데이터 모델링 3단계
    • 논리적 DB구조로 매핑
    • 트랜잭션 인터페이스 설계
    • 스키마의 평가 및 정제(최적화)
  • 특성
    • 충분히 수집하지 않으면 비용 발생
    • E-R모델 활용
    • HW , SW에 독립적

3. 물리 데이터 모델링 (설계)

  • 개념
    • DB생성을 위한 물리 구조로 변환
    • 레코드 양식, 응답시간, 저장공간 등 설계
  • 3단계
    • 레코드 분석 및 설계
    • 저장 레코드들을 클러스터링 (데이터 하나로 집중 or 분산)
    • 접근 경로 설계
  • 오브젝트 추가
    • 설계용 개체 타입 추가
    • 설계용 속성 추가
  • 성능을 고려한 조정
    • DBMS 고려
    • 개체 타입의 분리 or 통합 검토
    • 반정규화
    • 관계를 해체
  • DBMS에 적합한 성능 조정
    • 인덱스 추가 및 조정
    • 테이블 스페이스 조정
    • 인덱스 스페이스 조정

4. 데이터 베이스 구축 (개발)

  • 개념
    • 설계된 데이터 저장하기 위해 -> DBMS이용하여 DB생성
  • 고려사항
    • 무결성
    • 일관성
    • 회복성
    • 보안성
    • 호율성
    • 확장성

5. 데이터베이스

 

관계

1. 종류

  • 속성 관계
    • 속성과 속성 사이의 관계
    • 개체 내 관계
  • 개체 관계
    • 개체와 개체 사이 관계
    • 개체 간의 관계
  • 종속 관계 (Dependent Relationship)
    • 식별 관계
      • 외래 식별자-> 하위 개체의 주 식별자의 전체 or 일부로 존재
    • 비식별 관계
      • 외래 식별자 -> 하위 개체의 일반 속성으로
  • 중복 관계 (Redundant Relationship)
    • 두 개체 간 두 번 이상의 종속 관계 발생
  • 재귀 관계 (Recursive Relationship)
    • 자기 자신 개체를 다시 참조
  • 배타 관계 (Exclusive Relationship)
    • 데이터 통합
    • AND, OR관계

 

2. 관계의 대응

  • 1:1 
    • 반드시 한 개씩
  • 1:0 or 1:1
    • 한 개 : 한개 이하
  • 1:1 or 1:N
    • 반드시 한 개 : 한 개 이상
  • 1:0 or 1:1 or 1:N
    • 반드시 한 개 : 한 개 이상 or 없
  • 1:N
    • 반드시 한 개 : 반드시 한 개 이상

 

3. M:N 관계의 해소

  • 구현 불가
  • N : 1로 변경해야 함
  • 논리적 완성, 부분집합 식별 능력 제한
  • 정규화 x, 불안정, 문서화 적업 완료 X

 

4. 관계의 특징

  • (1:1 - 1:0 ) or (1:1 - 1:1 )  : 개체 1, 개체 2는 주 식별자가 동일
    • 성능 향상, 데이터 보안 목적

 

 

<E-R다이어 그램 작성>

E-R다이어 그램

1. 배경

2. 개념

  • 개체와 관계로 현실 세계를 표현한 모델
  • 기본 요소 : 개체, 관계, 속성

3. 특징

  • 식별자, 상관관계, 속성 설명해줌
  • 물리적 시스템 환경 고려 X
  • 설계 변경이 거의 발생 X
  • 논리 data 모델 -> 하나의 개체 != 하나의 테이블이나 세그먼트

 

E-R다이어그램 표기법

1. 개체 - 사각형

  • 사물 or 사건
  • 유일한 단어

2. 속성 - 동그라미

  • 개체가 가지고 있는 요소 or 성질
  • 속성명 != 개쳄여
  • 속성 값이 NOT NULL인지, NULL인지 고려

3. 관계 - 마름모

4. E-R 모델 작성 기법

  • 개체들을 정렬하며 배열
  • 좌에서 우, 상에서 하
  • 관계는 사선 X
  • 교차선 X,

 

확장 E-R다이어그램 (ERD)

1. 슈퍼 타입, 서브 타입

  • is-a 관계 가짐
  • 서브 타입 -> 슈퍼 타입이 되어 -> 여러 개 서브 타입 가질 수 O

2. 특수화 (Specialization) ↓

  • 여러 개로 분리
  • 하향식 설계

3. 일반화 (Zeneralization) ↑

  • 공통적인 특성 -> 상위객체로
  • 클래스들 간의 개념적인 포함 관계
  • 상향식 

4. 상속 (inheritance)

  • 하위 클래스는 상위 클래스 모든 것 상속 O
  • 하나의 하위 클래스는 여러개의 상위 클래스 상속 O

5. 집단화(Aggregation)

  • 여러 개체 타입을 묶어 -> 하나의 상위 객체 만들 수 있
  • 중복될 수 있는 개체 -> 단순하게 표현 O
  • 특수화, 일반화 -> 집단화 상속 관계 X

6. 분류화(Classification)

  • 공통적인 성질을 갖는 멤버들 표현
  • 상속 관계X
  • root노드 유형

데이터 베이스

중복 데이터 or 불필요한 데이터 제거  -> 체계적으로 최적화시킨 데이터들의 집합

 

데이터 베이스의 정의

  • 공유데이터(Shared Data) : 데이터들을 공동으로 공유

  • 운영 데이터(Operational Data) : 필요한 모든 데이터 and 데이터들의 관계 집합

  • 통합 데이터(Integrated Data, 종합데이터) : 중복이 최소화된 데이터들의 집합(불필요한거 제거)

  • 저장 데이터(Stored Data) : 저장 매체에 저장

 

데이터 베이스의 특징

  • 계속적인 변화(Continuous Evolution) : 새로운 데이터 삽입 삭제등 데이터 유지하면서 갱신됨

  • 실시간 접근(Real Time Accessibility) : 실시간 처리로 응답 가능

  • 동시 공유(Concurrent Sharing) : 다수 이용자 이용 가능

  • 내용에 의한 참조(Content Reference) : 데이터의 내용 참조하며 접근

  • 뛰어난 데이터 간의 연계성(Superb Data Combination) : 데이터와 데이터 사이의 관련된 정보들로 연결됨

 

 

스키마(테이블 구조)

외부 스키마(개별 사용자 접근)

|

응용인터페이스

|

개념 스키마(DB 전체)

|

저장인터페이스

|

내부 스키마(실제 레코드 형식)

 

 

 

<데이터베이스 관리 시스템(DBMS)>

  • 데이터 저장하고 분석하기 위한 컴퓨터 응용프로그램

  • 주요 기능 : DB관리

  • 데이터 관리의 복잡성 해결 

  • 운영 데이터를 통합 저장 -> 공동으로 사용 가능하도록

 

질의어

  • DDL (Data Definition Language, 데이터 정의어)

    • 테이블 생성, 변경, 제어

    • 응용프로그램 <-> DBMS 간의 인터페이스 제공

    • Table, row, column, 기본키, 외래키

  • DML (Data Manipulation Language, 데이터 조작어)

    • SELECT, UPDATE, INSERT, DELETE

    • 사용자 <-> DBMS 간의 인터페이스 제공

  • DCL (Data Control Language, 데이터 제어어)

    • 데이터 관리자가 사용

 

 

데이터 베이스 관리 시스템의 필수 기능

  • 데이터 정의 기능 (Definition Facility) : 논리적, 물리적 구조 정의

  • 데이터 조작 기능(Manipulation Facility) : 데이터 접근 방법 효율, 명확 / 누구나 쉽게 데이터 검색 변경 삭제 조작 가능해야함

  • 데이터 제어 기능 (Control Facility) :

    • 동시성 제어 (Concurrency Control) : 동시에 데이터 사용 -> 감시 감독

    • 보안과 권한 (Security + Authority) : 외부로부터 데이터 보호, 데이터 사용 권한 구분

  • 무결성 (Integrity)및 제약조건 유지 기능 :  변경돼도 데이터 일관성 유지되어야함

 

특징

  • 무결성

  • 일관성

  • 회복성 : 복구 가능

  • 보안성

  • 효율성 : 최적화

 

DBMS 장단점

  • 장점

    • 중복 최소화

    • 많은 사용자 공유

    • 보안, 무결성 유지, 일관성 유지

  • 단점

    • 구축 자체 어렵, 규모 큼

    • 파괴되면 회복 어렵

    • 독립적이지 않음 : 일부 문제 -> 전체 시스템 영향

    • 구축 비용 많이 듦

 

상용 DBMS 선정 시 고려사항

  • 협업 : 협업 용이한 툴 선정

  • 지원 깊이 : 지원 커퍼리지 파악

  • 시각화 : 그래필 요소 지원 여부 파악

  • 이 기종 DB 지원 : 하나의 툴로 여러 DB 지원

  • 비용 : 총비용 고려

  • 편의 기능 

 

 

<데이터 베이스의 종류>

  • 파일 시스템
  • HDBMS
    • 트리 형태의 구조

      • 구현 용이

    • 접근 속도 빠름

    • 종속적인 구조 -> 데이터 변화 유연하게 대응 어렵

      • 적응성 ↓

    • 한 레코드 -> 여러 개의 레코드 포함

      • 삽입 삭제 어렵

    • 1 : N

      • M : N 관계 표현 X

 

  • NDBMS (Network DBMS)
    • 그래프 형태

      • 계층형 DB보단 유연

      • 레코드로 연결

    • 설계 복잡

      • 데이터 간의 연계성 뛰어남

      • 비용 많이 듦

    • 1:1, 1:N, N:1, N:M

    • 데이터 종속성 문제 해결 X

 

  • RDBMS (Relational DBMS)
    • 테이블 구조

      • 단순한 데이터 구조

      • 2차원 형태인 테이블로 관계 맺는 개념

    • 가장 보편화 됨

    • 데이터 상호 간의 관계 표현

    • 유연성 좋음

      • 유지 관리 용이

    • 시스템 부하가 커서 수행 속도 느림

    • Oracle, SQL Server, MySQL, Maria DB

 

범용 DBMS

  • 관계형 DBMS

    • 테이블 구조(스키마)정의, 테이블 간의 관계 정의 -> 데이터 관리

  • 문서 저장 DBMS

    • 스키마 구조 필요 X

    • 컬럼의 하나 이상의 값 가질 O

    • Client 단에서 후 처리 필요

    • ex) Mongo DB, Amazon Dynamo DB ...

  • 그래프 DBMS

    • 정점과 간선으로 특화

    • 노드 간 관계를 구조화 -> 저장

    • ex) Neo4j

  • 키 값 DBMS

    • 가장 간단한 형태

    • 임베디드 시스템에 적합

    • ex) Redis, Amazon Dynamo DB

 

 

RDBMS 모델링

1. 기본용어

  • 속성 (Attribute) - 애트리뷰트
    • 변수명, 레코드의 필드

    • 유일한 값을 가져야 함

    • 순서 X

  • 도메인(Domain)
    • 실제 원자 값들의 범위

  • 튜플 (Tuple)
    • 실제 입력된 값들의 집합

    • 레코드

  • 릴레이션

    • 표 자체

    • 한개 이상의 속성들 집합

    • 릴레이션 스키마 + 릴레이션 어커런스

  • 릴레이션 스키마
    • 하나 이상의 속성

  • 릴레이션 어커런스
    • 실제 입력된 튜플들의 집합 -> 실시간 변화

  • 차수(Degree)
    • 릴레이션에서 정의된 속성의 개수

    • 레코드 필드 수

  • 카디날리티 (Cardinality, 기수)
    • 튜플의 개수 or 기수

    • 레코드의 수

  • 널 (NULL)
    • 속성 값 비어 있는 거

 

2. 릴레이션 특징

  • 튜플의 유일성

    • 중복 X

  • 튜플의 무순서

  • 속성의 원자성

  • 속성의 무순서 

  • 속성 이름의 유일성

 

3. RDMS의 키

  • 후보키(Candidate Key)
    • 유일성, 최소성

  • 기본키(Primary Key)
    • NULL값 불가

  • 대체키(Alternate Key, 보조키)
    • 후보키 중 기본키 제외한 모든 키

  • 외래키 (Foreign Key)
  • 슈퍼키
    • 튜플을 식별하기 위한 두 개 이상의 속성들의 집합

    • 유일성 O, 최소성 X

  • 무결성(integrity) 제약사항

    • 도메인 무결성
      • 정확성 유지

      • 숫자면 숫자로만, 한글은 한글로만

    • 개체 무결성
      • 기본키는 NULL값 X

      • 튜플 중복 X

    • 참조 무결성
      • 릴레이션은 참조할 수 없는 외래키 가질 X

      • 외래키가 NULL이거나 참조 릴레이션의 기본키값과 동일해야함

      • ex) [학과] 테이블의 '학번'은 [학생]테이블의 '학번'에 있는 값만 넣을 수 있다. 

+ Recent posts