반응형 CS 지식/데이터베이스10 [데이터베이스] 정규화(Normalization)와 함수 종속성, BCNF분해, 3NF분해, 종속성 규칙과 공리 정규화(Normalization)란?정규화는 데이터베이스 설계 시 데이터의 중복을 최소화하고, 데이터의 무결성을 유지하기 위해 테이블을 구조적으로 분해하는 과정이다. 정규화를 통해 데이터 저장 공간의 낭비를 줄이고, 삽입/삭제/갱신 이상(Anomaly)을 방지할 수 있다.정규화의 목적중복 데이터 제거데이터 무결성 유지삽입/삭제/갱신 이상(Anomalies) 방지테이블 간의 명확한 관계 설정정규화 과정 (Normal Forms)정규화는 여러 단계로 구성되며, 각 단계는 이전 단계보다 더 높은 수준의 정규성을 보장한다:제1정규형(1NF): 모든 속성 값이 원자값(Atomic Value)으로 되어 있어야 함제2정규형(2NF): 1NF를 만족하고, 부분 함수 종속 제거제3정규형(3NF): 2NF를 만족하고, 이.. 2025. 4. 10. [데이터베이스] 모델링, 관계집합, E-R 다이어그램(ERD) 데이터베이스 모델링 (Modeling)데이터베이스는 다음과 같이 모델링할 수 있다:엔티티들의 집합(Collection)엔티티들 간의 관계(relationship)엔티티(Entity)엔티티는 존재하며 다른 객체들과 구별 가능한 객체를 의미한다.예시: 특정 학생 (예: Williams)속성(Attribute)엔티티는 여러 개의 속성(특징) 을 가진다.예시: 학생은 이름(name), 전화번호(phone number) 등의 속성을 가짐엔티티 집합(Entity Set) = relation같은 유형(Type)의 엔티티들이 모인 집합이며, 동일한 속성을 공유한다.예시: 모든 학생들의 집합, 모든 학과들의 집합 등 Entity Sets instructor and studentinstructor = entity set .. 2025. 4. 4. [데이터베이스] 권한과 권한 그룹(역할) Authorization / Privileges사용자는 데이터베이스의 특정 부분에 대해 여러 형태의 권한(authorization) 을 가질 수 있다.이러한 각각의 권한은 privilege(권한) 라고 불리며, 필요에 따라 모두, 일부, 혹은 전혀 부여하지 않을 수 있다.권한은 테이블(relation) 이나 뷰(view) 와 같은 데이터베이스의 특정 객체에 대해 설정할 수 있다. 주요 권한 종류권한 유형설명Read데이터를 읽을 수 있음. 수정은 불가능함Insert새로운 데이터를 삽입할 수 있음. 기존 데이터는 수정 불가능Update기존 데이터를 수정할 수 있음. 삭제는 불가능Delete데이터를 삭제할 수 있음권한 부여 방식사용자는 특정 테이블 또는 뷰에 대해 하나 이상의 권한을 부여받을 수 있음예: 어떤.. 2025. 4. 1. [데이터베이스] 트랜잭션과 무결성 제약 조건, 도메인 Transactions트랜잭션: 하나의 작업 단위로 간주되는 질의 및/또는 갱신 명령문의 순서시작과 종료SQL에서는 명시적인 시작 없이 SQL 문이 실행되면 트랜잭션이 자동으로 시작됨트랜잭션은 아래 중 하나로 종료해야 함:COMMIT WORK: 변경 사항을 영구 반영ROLLBACK WORK: 수행된 변경 사항을 모두 취소트랜잭션 특성Atomic(원자성): 전부 수행되거나, 전혀 수행되지 않아야 함Isolation(격리성): 동시에 실행되는 다른 트랜잭션으로부터 독립적으로 수행(concurrent)Integrity Constraints(무결성 제약 조건)무결성 제약 조건은 데이터베이스 손상 방지를 위해 사용됨데이터 변경 시 일관성(consistency) 을 유지하도록 강제함예시 제약 조건당좌예금 계좌는 $.. 2025. 4. 1. [데이터베이스] 뷰(View) 정의와 사용, 삽입 View Definition and Usewith로 만든 것도 뷰이지만, 쿼리 안에서만 유효하고, 쿼리가 끝나면 삭제된다. 뷰가 만들어지면 Db는 이 뷰를 저장할 것이고 마치 테이블 처럼 DB 어디서든 접근 할수 있고 권한 이슈도 해결 가능하다as operator를 꼭 써야된다. 뷰는 단지 반복되는 조회문을 치환한 것이기 때문에, as 연산자가 쓰인다.create view faculty asselect ID, name, dept_namefrom instructor뷰를 테이블처럼 이용해서 쿼리를 만들수 있다.select namefrom faculty where dept_name = 'Biology‘뷰 만들때 view attribute 이름도 명시할 수 있다.create view departments_tot.. 2025. 3. 26. [데이터베이스] 조인 연산의 종류와 조건 Joined Relations조인 연산은 두 개의 관계(Relation)를 입력으로 받아 또 다른 관계를 결과로 반환하는 연산이다.두 개 이상의 테이블에서 관련된 열(Column)을 기준으로 행(Row)을 결합할 때 사용된다.일반적으로 FROM 절의 서브쿼리 표현식으로 활용된다.조인의 종류자연 조인(Natural Join)두 테이블에서 동일한 이름을 가진 속성을 기준으로 자동으로 조인한다.중복된 속성은 하나로 합쳐진다.내부 조인(Inner Join)조인 조건을 만족하는 행들만 결과로 반환한다.ON 절을 사용하여 특정 조건을 명시할 수 있다.외부 조인(Outer Join)한쪽 테이블에 매칭되는 데이터가 없어도 결과에 포함되도록 한다.세 가지 유형이 있다.왼쪽 외부 조인(Left Outer Join): 왼쪽.. 2025. 3. 26. [데이터베이스] 기초 SQL (2) 이전글에서는 기초 SQL문을 소개했고, 마저 집계함수에 이어서 소개하겠습니다. 이전글https://konkukcodekat.tistory.com/213 [데이터베이스] 기초 SQL (1)기초 SQL 소개SQL Data-Definition Language (DDL)SQL은 각 릴레이션의 스키마(schema), 속성의 도메인(domain), 무결성 제약 조건(integrity constraints)을 정의할 수 있다.Domain Types in SQLchar(n): 고정된 크기의 문자열konkukcodekat.tistory.comAggregate Functions – Group Byselect dept_name, avg(salary) as avg_salaryfrom instructorgroup by dept.. 2025. 3. 22. 이전 1 2 다음