[TIL/정보처리기사 실기] 2024/03/11
✅ 6가지 쟁점 정리스키마: 데이터베이스의 구조와 제약조건에 관한 전반적인 명세를 기술한 것이다.개념 스키마: 데이터베이스의 전체적인 논리적 구조로, 모든 응용 프로그램이나 사용자들이 필요로 하는 데이터를 종합한 조직 전체의 데이터베이스이다.내부 스키마: 실제로 저장될
✅ 6가지 쟁점 정리
1. 데이터베이스 개요 🟢
1. 스키마: 데이터베이스의 구조와 제약조건에 관한 전반적인 명세를 기술한 것이다.
2. 개념 스키마: 데이터베이스의 전체적인 논리적 구조로, 모든 응용 프로그램이나 사용자들이 필요로 하는 데이터를 종합한 조직 전체의 데이터베이스이다.
3. 내부 스키마: 실제로 저장될 레코드의 형식, 저장 데이터 항목의 표현 방법, 내부 레코드의 물리적 순서 등을 나타낸다.
4. 외부 스키마: 사용자나 응용 프로그래머가 각 개인의 입장에서 필요로 하는 데이터베이스의 논리적 구조를 정의한 것이다.
5. DBMS 필수 기능 중 정의(Definition) 기능: 모든 응용 프로그램들이 요구하는 데이터 구조를 지원하기 위해 데이터베이스에 저장될 데이터 타입과 구조에 대한 정의, 이용 방식, 제약 조건 등을 명시하는 기능
2. 데이터베이스 설계 🟢
1. 데이터베이스 설계 순서: 요구 조건 분석 -> 개념적 설계 -> 논리적 설계 -> 물리적 설계 -> 데이터베이스 구현
2. 물리적 설계: 논리적 구조로 표현된 데이터를 디스크 등의 저장장치에 저장할 수 있는 데이터로 변환하는 과정으로, 파일의 저장 구조 및 엑세스 경로를 결정하며, 테이블 정의서 및 명세서가 산출된다.
3. 개념적 설계: 현실 세계에 대한 인식을 추상적 개념으로 표현하는 과정으로, 개념 스키마 모델링과 트랜잭션 모델링을 수행하며, 요구 조건 명세를 E-R 다이어그램으로 작성한다.
4. 논리적 설계: 현실의 자료를 특정 DBMS가 지원하는 자료 구조로 변환하는 과정으로, 트랜잭션의 인터페이스를 설계하고, 정규화를 통해 스키마를 평가 및 정제한다.
3. 관계형 데이터베이스의 구조 / 관계형 데이터 모델 🟢
1. 
릴레이션(Relation): 1, 애트리뷰트(Attribute): 3, 튜플(Tuple): 5
2. 관계형 데이터베이스의 릴레이션(Relation) 구조 중 도메인(Domain): 하나의 애트리뷰트가 취할 수 있는 같은 타입의 원자(Atomic)값들의 집합이다.
3. 어떤 릴레이션의 스키마가 4개의 속성(Attribute), 2개의 후보키 그리고 그 스키마의 릴레이션 인스턴스가 7개의 튜플(Tuple)을 갖는다면 그 릴레이션의 차수(Degree)는 몇 개인가? : 차수(Degree)는 속성(Attribute)의 수와 동일하므로 4이다.
4. A1, A2, A3 3개 속성을 갖는 한 릴레이션(Relation)에서 A1의 도메인은 3개 값, A2의 도메인은 2개 값, A3의 도메인은 4개 값을 갖는다. 이 릴레이션에 존재 가능한 튜플(Tuple)의 최대 수는 몇 개인지 쓰시오. : 한 릴레이션에 속한 튜플들은 모두 서로 다른 값을 가져야 한다. 즉 튜플에 대한 속성 A1, A2, A3 중 한 개는 다른 튜플들과 다른 값을 가져야 하므로, 존재할 수 있는 최대 튜플 수는 각 도메인이 가진 값의 종류를 모두 곱한 값이 된다.
5. 관계형 데이터 모델: 데이터베이스에서 2차원 구조의 표 또는 테이블을 이용하여 데이터 상호 관계를 정의하는 DB 구조를 의미하는 데이터 모델
6. 튜플: 릴레이션을 구성하는 각각의 행을 의미하며, 파일 구조에서는 레코드에 해당함.
7. 릴레이션 인스턴스: 데이터 개체를 구성하고 있는 속성들에 데이터 타입이 정의되어 구체적인 데이터 값을 가진 것으로, 실제 값을 가진 튜플을 의미함.
8. 카디널리티: 튜플의 개수를 의미함
4. 관계형 데이터베이스의 제약 조건 - 키(Key) 🟢
1. 두 릴레이션(Relation)에서 외래키로 사용된 속성은?(단, 대괄호 친 속성은 기본키이다.) 과목([과목번호], 과목명) 수강([수강번호], 학번, 과목번호, 학기) => 과목번호
2. 키(Key)는 데이터베이스에서 조건에 만족하는 튜플을 찾거나 순서대로 정렬할 때 기준이 되는 속성을 말한다.
3. 슈퍼키(Super Key)는 한 릴레이션 내에 있는 속성들의 집합으로 구성된 키로, 릴레이션을 구성하는 모든 튜플에 대해 유일성을 만족한다.
4. 후보키(Candidate Key)는 릴레이션을 구성하는 속성들 중에서 튜플을 유일하게 식별하기 위해 사용되는 속성들의 부분집합으로, 유일성과 최소성을 만족하는 특징이 있다.
5. 슈퍼키: 한 릴레이션 내에 있는 속성들의 집합으로 구성된 키로, 릴레이션에 있는 모든 튜플에 대해 유일성은 만족시키지만 최소성은 만족시키지 못하는 키다.
6. 대체키(Alternate Key): 후보키가 둘 이상일 때 기본키를 제외한 나머지 후보키를 의미한다.
7. 기본키(Primary Key): 후보키 중에서 특별히 선정된 키, 한 릴레이션에서 특정 튜플을 유일하게 구별할 수 있는 속성, 후보키의 성질을 갖는다, 중복된 값이나 NULL 값을 가질 수 없다.
5. 관계대수 및 관계해석 🟢
1. 관계대수 연산자(➗): 릴레이션 A, B가 있을 때 릴레이션 B의 조건에 맞는 것들만 릴레이션 A에서 분리하여 프로젝션을 하는 연산자다.
2. 합집합(UNION)은 두 릴레이션에 존재하는 튜플의 합집합을 구하되, 결과로 생성된 릴레이션에서 중복되는 튜플은 제거되는 연산으로, 사용하는 기호는 U 이다.
3. 차집합(DIFFERENCE)은 두 릴레이션에 존재하는 튜플의 차집합을 구하는 연산으로, 사용하는 기호는 - 이다.
4. 교차곱(CARTISIAN PRODUCT)은 두 릴레이션에 있는 튜플들의 순서쌍을 구하는 연산으로, 사용하는 기호는 X 이다.
5. 프로젝트(PROJECT)는 주어진 릴레이션에서 속성 리스트(Attribute List)에 제시된 속성 값만을 추출하여 새로운 릴레이션을 만드는 연산으로, 사용하는 기호는 π 이다.
6. 조인(JOIN)은 공통 속성을 중심으로 두 개의 릴레이션을 하나로 합쳐서 새로운 릴레이션을 만드는 연산으로, 사용하는 기호는 ⨝ 이다.
7. 관계해석(Relational Calculus)은 데이터의 연산을 표현하는 방법으로, 관계 데이터 모델의 제안자인 코드(E.F.Codd)가 수학의 술어 해석에 기반을 두고 관계 데이터베이스를 위해 제안했다. 원하는 정보가 무엇이라는 것만 정의하는 비절차적 특성을 지니며, 원하는 정보를 정의할 때 계산 수식을 사용한다. 튜플 해석식을 사용하는 튜플 관계해석과 도메인 해석식을 사용하는 도메인 관계해석으로 구분된다.
8. p.177 4번 참고
6. 이상 / 함수적 종속 🟢
1. 정규화를 거치지 않으면 데이터베이스 내에 데이터들이 불필요하게 중복되어 릴레이션 조작 시 예기치 못한 곤란한 현상이 발생하는데, 이를 이상(Anomaly)이라 한다. 이상의 종류 3가지: 삽입 이상(Insertion Anomaly), 삭제 이상(Deletion Anomaly), 갱신 이상(Update Anomaly)
2. p.182 2번 참고
3. 삭제 이상(Deletion Anomaly): 테이블에서 튜플을 삭제할 때 의도와는 상관없는 값들도 함께 삭제되는 현상이다.
4. p.183 4번 참고
5. 어떤 릴레이션 R에서 A와 B를 각각 R의 애트리뷰트 집합이라고 가정할 때 애트리뷰트 A의 값 각각에 대해서 사건에 관계없이 항상 애트리뷰트 B의 값이 오직 하나만 연관되어 있을 때 B는 A에 함수적 종속이라고 하고 A->B로 표기한다. 만약 B가 A에 종속되어 A 값만 알면 B 값을 알 수 있을 때 A를 결정자라고 하고, B를 종속자라고 한다.
More to read
Amazon VPC Architecture 이해하기
새로운 프로젝트를 기획하며, 개발에서 무엇을 가장 먼저 고민해야 하는지 다시 돌아보게 되었습니다.한때는 프론트엔드가 모든 설계의 출발점이라고 믿었습니다. 유저가 무엇을 보고, 어떤 흐름에서 머무르고 이탈하는지에 대한 이해 없이 서비스를 만든다는 건 불가능하다고 생각했기
'원사이트'프론트엔드 관점으로 알고리즘 이해하기
오랜만에 방법론에 관한 글을 쓰게 되었습니다. 최근 상황은 이렇습니다. SSAFY에서는 하루에 엄청난 양의 알고리즘 문제들을 과제로 수행하게 됩니다. 그 과정에서, '구현력'이 매우 떨어진다는 생각이 들었습니다. 완전히 어려운 문제라면 '아쉬움'이라는 감정조차 느끼지
SubnetVPC 설계의 시작: IP와 Subnet
반복되는 루틴 속에서 얻은 안정감을 발판 삼아, 이제는 기술적 스펙트럼을 넓히기 위한 개인 프로젝트에 착수하고자 합니다.이번 프로젝트의 목표는 단순한 포트폴리오 구축을 넘어, 실제 서비스 수준의 블로그 시스템 구현과 다국어 처리 적용 등 실무에 가까운 역량을 한 단계