🤖 데이터베이스 설계 순서 (데이터베이스 모델링 절차)
데이터 모델링 : 현실 내 복잡한 데이터 구조를 단순/추상화하여 체계적으로 표현
- 요구조건 분석
: 요구 조건 명세서 작성 - 개념적 모델 (개념적 설계)
- 현실 세계를 데이터 관점으로 추상화하는 단계
- 개념적 스키마 구성 (E-R 다이어그램) - 논리적 모델 (논리적 설계)
- 개념적 모델을 컴퓨터가 처리할 수 있는 구조로 표현
- 정규화
- 트랜잭션 인터페이스 설계 - 물리적 모델 (물리적 설계)
- 물리적 스키마 생성
- 트랜잭션 세부 설계
- 반정규화 - 구현
: DBMS에서 SQL로 작성한 명령문 실행 후 데이터베이스 실제 생성
🤖 데이터 모델 구성 요소
- 구조 (Structure)
- 논리적으로 표현될 대상으로서의 개체 간 관계
- 데이터 구조, 정적 성질 표현
- 연산 (Operation)
- 실제 데이터를 처리하는 작업에 대한 명세
- 데이터베이스 조작 도구 - 제약조건 (Constraint)
- 데이터 무결성 유지를 위한 DB의 보편적 방법
- 릴레이션의 특정 칼럼에 설정하는 제약
- 개체 무결성, 참조 무결성 등
🤖 논리 데이터 모델링 속성 (개체-관계 모델 / E-R Model)
- 개체 (Entity)
- 독립적이고 구별 가능한 모든 것 - 속성 (Attributes)
- 개체가 가진 고유의 특성
- 가장 작은 논리적 단위 - 관계 (Relationship)
- 두 개체 간의 의미 있는 연관성 및 연결 구조
- 일대일(1:1), 일대다(1:N), 다대다(N:M)
https://it-freelancer.tistory.com/962
[정처기] 데이터 모델 구성 요소 3가지
4월 22일쯤에 있을 정보처리기사 실기를 준비하고 있습니다. 실기 예상 문제 하나를 풀어보겠습니다. 정답은 드래그하면 보입니다. 1. 문제. 데이터 모델 구성 요소 3가지는 무엇인가? 정답 : Entity
it-freelancer.tistory.com
🤖 E-R 다이어그램 표기법
🤖 관계대수
: 원하는 정보의 검색 과정을 정의하는 절차적 언어
어떻게 질의를 수행할 것인가를 명시하는 절차적 언어
상용 관계 DBMS들에서 널리 사용되는 SQL의 이론적인 기초
순수 관계 연산자
- Select (선택) : σ (시그마)
- 조건을 만족하는 튜플들의 부분 집합
σ <셀렉션 조건> (테이블) σ 성적=90 (학생)
- Project (추출) : π (파이)
- 속성들의 부분 집합 반환, 중복 제거
π <애트리뷰트 리스트> (테이블) π 학번,이름,성적 (σ 성적=90 (학생))
- Join : ⋈ (보타이)
- 두 개의 릴레리션을 하나로 합쳐 새로운 릴레이션 형성
// 세타조인, 동등조인 R ⋈<조건> S EMPLOYEE ⋈DNO=DEPTNO DEPARTMENT // 자연조인 R *<R속성, S속성> S EMPLOYEE *DNO,DEPTNO DEPARTMENT
- 세타 조인 : 두 릴레이션 속성 값을 비교(=, <>, <=, <, >=, >) 후 조건을 만족하는 튜플만 반환
- 동등 조인 : 세타 조인 중에서 비교 연산자가 =인 조인
- 자연 조인 : 동등 조인의 결과에서 중복된 속성(애트리뷰트)을 제거한 결과 - Division : ÷ (나누기)
- A⊃B일 때(B가 A에 포함될 때) B가 가진 속성을 제외한 나머지 속성들만 추출
일반 집합 연산자
- Union (합집합) : ∪
- 두 릴레이션의 합 추출
- 중복된 튜플 제거 - Intersection (교집합) : ∩
- 두 릴레이션의 중복되는 값만 추출 - Difference (차집합) : -
- 두 릴레이션 R과 S의 차집합 R - S는 R에는 속하지만 S에는 속하지 않은 튜플들로 이루어진 릴레이션 - Cartesian Product (교차곱) : X
- 두 릴레이션 R과 S의 튜플들의 모든 가능한 조합으로 이루어진 릴레이
- 교차곱 이후 Degree(차수; 속성의 개수) : R의 차수 + S의 차수
- 교차곱 이후 Cardinality(기수; 튜플의 개수) : R의 기수 + S의 기수
🤖 관계 해석
: 원하는 정보가 무엇이라는 것만 정의하는 비절차적 언어
원하는 데이터만 명시하고 질의를 어떻게 수행할 것인가는 명시하지 않는 선언적인 언어
논리 연산자
- OR : ∨
- 원자식 간 "또는" 관계로 연결 - AND : ∧
- 원자식 간 "그리고" 관계로 연결 - NOT : ¬
- 원자식에 대한 부정
정량자
- 전칭 정량자 : ∀
- 모든 가능한 튜플 "For All" - 존재 정량자 : ∃
- 어떤 튜플 하나라도 존재 "There Exists"
🤖 정규화
: 관계형 데이터 모델의 중복을 제거하여 이상 현상을 방지하고, 데이터의 일관성과 정확성을 유지하기 위한 작업
논리적 설계 단계에서 수행
이상 현상
: 데이터의 중복성으로 인해 릴레이션을 조작할 떄 발생하는 비합리적인 현상
- 삽입 이상 (Insertion Anomaly) : 데이터 삽입 시 불필요한 데이터가 함께 삽입
- 삭제 이상 (Deletion Anomaly) : 튜플 삭제 시 필요한 데이터도 함께 삭제
- 갱신 이상 (Update Anomaly) : 속성값을 갱신할 때 일부 튜플의 정보만 수정되어 정보 모순 발생
정규화 과정
0. 비정규 릴레이션
- 제 1 정규형 (1NF)
- 모든 도메인이 원자 값 - 제 2 정규형 (2NF)
- 1NF를 만족하며 부분적 함수 종속 제거 - 제 3 정규형 (3NF)
- 2NF를 만족하며 이행적 함수 종속 제거 - BCNF
- 3NF를 만족하며 결정자이면서 후보키가 아닌 것 제거 - 제 4 정규형 (4NF)
- BCNF를 만족하며 다치 종속 - 제 5 정규형 (5NF)
- 4NF를 만족하며 조인 종속성 이용
반정규화
: 정규화 과정 진행 후, 시스템 성능 향상 및 운영 단순화를 위해 의도적으로 데이터 중복/통합/분리 등을 수행하는 데이터 모델링의 기법
- 장점 : 반정규화 된 데이터는 성능 향상과 관리의 효율성이 증가한다.
- 단점 : 데이터의 일관성 및 정합성 저하, 유지를 위한 별도 비용 발생
🤖 데이터베이스 종류
- 관계형 데이터베이스
: 테이블 간의 관계를 중심으로 데이터를 구성하며 SQL 사용 - 객체지향 데이터베이스
: 객체지향 프로그래밍과 유사한 방식으로 데이터를 구성하며 자바나 C++ 등의 프로그래밍 언어 사용
관계형 데이터베이스 표현
- 릴레이션 : 테이블
- 속성 : 열 = 필드
- 튜플 : 행 = 레코드
- 차수 Degree : 속성의 개수
- 기수 Cardinality: 튜플의 개수
- 도메인 : 하나의 속성에서 취할 수 있는 원자 값들의 집합
🤖 Key
- 기본키 (Primary Key)
- 릴레리션에서 각 레코드를 식별하기 위해 선택된 유일한 키
- 중복된 값과 NULL 값을 가질 수 없음(개체 무결성) - 대체키 (Alternate Key)
- 기본키와 마찬가지로 유일성을 보장하지만, 기본키로 적합하지 않은 경우 사용되는 키를 의미
- 후보키가 둘 이상일 때 기본키를 제외한 나머지 후보키 - 후보키 (Candidate Key)
- 릴레리션에서 기본키로 선택될 수 있는 가능서잉 있는 키
- 유일성과 최소성의 조건을 만족
* 유일성 : 하나의 키 값으로 하나의 튜플을 유일하게 식별 가능
* 최소성 : 모든 레코드를 식별하는데 최소한의 속성으로만 구성 - 슈퍼키 (Super Key)
- 한 릴레리션 내 속성들의 집합으로 구성된 키
- 유일성을 보장하지만, 최소성의 조건을 만족시키지 않음 - 외래키 (Foreign Key)
- 다른 릴레이션의 기본키를 참조하는 속성 또는 속성들의 집합
- 해당 속성은 참조하는 릴레이션의 기본키 값과 일치하거나 NULL 값이어야 함(참조 무결성)
🤖 무결성 (Integrity)
: 데이터베이스에 저장된 데이터 값과 그것이 표현하는 현실 세계의 실제 값이 일치하는 정확성을 의미
- 개체 무결성 : 기본키는 NULL이 될 수 없고 중복이 일어날 수 없음
- 도메인 무결성 : 주어진 속성이 도메인에 속해야 함
- 참조 무결성 : 외래키는 참조할 수 없는 값을 가질 수 없음
- 사용자 정의 무결성 : 속성값들이 사용자가 정의한 제약조건에 만족해야
참고 :
[정보처리기사 실기] 데이터베이스 정리
공장통운공유 데이터 (Shared Data)여러 응용 프로그램들이 공동으로 사용하는 데이터저장 데이터 (Stored Data)컴퓨터가 접근 가능한 저장 매체에 저장된 데이터통합 데이터 (Integrated Data)검색의 효율
velog.io
데이터베이스 4장 관계대수
우린 관계 대수에 대해서만 알아본다. 관계 대수 관계 연산자를 통해 복잡한 관계 대수식을 만들 수 있다. 관계 연산자는 크게 두가지로 나눌 수 있다. 1. 실렉션 연산자 2. 프로젝션 연산자 예시
chopby.tistory.com
https://sugoring-it.tistory.com/153
정보처리기사 정처기 | 실기 3 데이터 입출력 구현 | 논리 데이터 저장소 확인, 물리 데이터 저장
✅ 핵심 키워드논리 데이터 모델링데이터베이스 설계 프로세스의 기초 설계 단계로 비즈니스 정보의 구조와 규칙을 명확하게 표현할 수 있는 기법이다. 물리 데이터 모델링관계 데이터 모델링
sugoring-it.tistory.com
'Certifications > 정보처리기사 실기' 카테고리의 다른 글
[정보처리기사 실기] 응용 SW 기초 기술 활용 _ 운영체제 특징 (1) | 2024.10.10 |
---|---|
[정보처리기사 실기] 서버 프로그램 구현 (3) | 2024.10.10 |
[정보처리기사 실기] 화면 설계 (5) | 2024.10.06 |
[정보처리기사 실기] 요구사항 확인 (0) | 2024.10.06 |
[정보처리기사 실기] 소프트웨어 개발방법론 (0) | 2024.10.02 |