수강 신청 관련한 DB 설계 [발표] 지난 해 학교 수업 당시, 수강신청 DB 설계에 관련된 과제를 담당했습니다. 시간이 많이 흐르긴 했지만, 정리를 해보겠습니다. 순서는 다음과 같이 진행하였습니다. 요구사항분석 필요한 엔티티는 총 5개로 구분했습니다. ERD설계 테이블 생성 및 데이터 삽입 정규화과정 전에 설명한 정규화 과정을 통해서 각각의 테이블에 정규화과정이 필요한지 검증을 하였고, 이를 바탕으로 정규화를 시행하였습니다. 학교수업, CS/데이터베이스 2024.02.29
회복, 병행 제어 트랜잭션의 개념 하나의 작업을 수행하기 위해 필요한 데이터베이스 연산들을 모아놓은 것으로, 논리적인 작업의 단위이다. 트랜잭션의 특징 - 원자성: 트랜잭션의 연산이 모두 정상적으로 수행되거나 하나도 수행되지 않아야 한다. - 일관성: 트랜잭션이 수행된 후에도 데이터베이스가 일관성이 있는 상태여야 한다. - 격리성: 수행 중인 트랜잭션이 완료될 때까지 다른 트랜잭션들이 중간 연산 결과에 접근할 수 없다. - 지속성: 트랜잭션의 수행이 완료된 후에 데이터베이스에 반영한 결과는 영구적이여야 한다. 트랜잭션의 연산 - commit 연산: 작업 완료 - rollback 연산: 작업 취소 트랜잭션의 상태 - 활동 상태: 트랜잭션이 수행을 시작하여 현재 수행중인 상태이다. - 부분 완료 상태: 트랜잭션의 마지막 연산.. 학교수업, CS/데이터베이스 2024.02.29
정규화 이상 현상의 개념 - 불필요한 데이터 중복으로 인해 발생하는 부작용들이다. - 함수 종속 관계 여러 개를 하나의 릴레이션에 표현하는 경우에 주로 발생한다. 이상 현상의 종류 - 삽입 이상: 새 데이터를 삽입하기 위해 불필요한 데이터도 함께 삽입해야 하는 문제이다. - 갱신 이상: 중복된 튜플 중 일부 튜플만 변경하여 데이터가 불일치하게 되는 모순의 문제이다. - 삭제 이상: 튜플 삭제 시 꼭 필요한 데이터까지 함께 삭제되는 데이터 손실의 문제이다. 함수 종속 - 어느 시점에서든 릴레이션 내의 모든 튜플에서 속성 집합 X 값에 대한 속성 집합 Y 값이 항상 하나면 “Y가 X에 함수적으로 종속외어 있다” 라고 한다. - X->Y로 표현(X는 결정자, Y는 종속자) 함수 종속 다이어그램 릴레이션 하나를 구성하.. 학교수업, CS/데이터베이스 2024.02.29
데이터베이스 설계 데이터베이스 설계의 과정 사용자의 다양한 요구 사항을 고려하여 데이터베이스를 생성하는 과정이다. E-R 모델과 변환 규칙을 이용한 설계와 정규화를 이용한 설계가 있다. E-R 모델과 릴레이션 변환 규칙을 이용한 설계: 5단계로 진행된다. 정규화를 이용한 설계: 이상 현상을 제거하면서 올바르게 설계해나가는 방법이다. 요구사항 분석 데이터베이스에 대한 사용자의 다양한 요구 사항을 수집하여 분석하여, 개발할 데이터베이스의 용도를 파악해 요구 사항 명세서를 작성한다. 개념적 설계 요구 사항 명세서를 개념적 데이터 모델(개념적 스키마)로 표현한다. 논리적 설계와 릴레이션 스키마 변환 규칙 - 규칙1: 모든 개체는 릴레이션으로 변환한다. - 규칙2: 다대다 관계는 릴레이션으로 변환한다. - 규칙3: 일대다 관계는 .. 학교수업, CS/데이터베이스 2024.02.29
데이터베이스 언어 SQL: 관계 데이터베이스를 위한 표준 질의어다. SQL의 데이터 정의 기능 - 테이블 생성: CREATE TABLE - 테이블 변경: ALTER TABLE - 테이블 삭제: DROP TABLE SQL의 데이터 조작 기능 기본 검색: SELECT * FROM [테이블명] 조건 검색: SELECT * FROM [테이블명] WHERE [조건] 정렬 검색: SELECT * FROM [테이블명] WHERE[조건] ORDER BY[DESC|ASC] 집계함수를 이용한 검색: COUNT, SUM, AVG, MAX, MIN 그룹 검색: SELECT * FROM [테이블명] WHERE[조건] GROUP BY[칼럼명] HAVING [칼럼명] (ORDER BY) 조인 검색: 여러 테이블을 연결하여 검색 부속 질의문 검색: .. 학교수업, CS/데이터베이스 2024.02.29
관계 데이터 연산 데이터 모델=데이터구조+제약 조건+연산 관계 데이터 연산 원하는 데이터를 얻기 위해 릴레이션에 필요한 처리를 요구하는 것이다. 관계 대수와 관계 해석이 있는데, 이 둘은 기능과 표현력 모두에서 능력이 동등하다. - 관계 대수: 원하는 결과를 얻기 위해 데이터의 처리 과정을 순서대로 기술하는 절차 언어 - 관계 해설: 원하는 결과를 얻기 위해 처리를 원하는 데이터가 무엇인지만 기술하는 비절차 언어 관계 대수 원하는 결과를 얻기 위해 데이터의 처리 과정을 순서대로 기술한 언어로, 간단히 말해 릴레이션을 처리하는 연산자들의 모임 - 피연산자인 릴레이션에 연산자를 적용한 결과도 릴레이션이라는 폐쇄 특성이 있다. - 일반 집합 연산자와 순수 관계 연산자로 분류한다. 일반 집합 연산자 릴레이션이 튜플의 집합이라는 .. 학교수업, CS/데이터베이스 2024.02.29
관계 데이터 모델 관계 데이터 모델의 개념과 기본 용어 개념적 구조를 논리적 구조로 표현하는 논리적 데이터 모델 중 하나이다. 관계 데이터 모델은 하나의 개체에 대한 데이터를 릴레이션 하나에 담아 데이터베이스에 저장한다. 릴레이션-relation: 하나의 개체에 관한 데이터를 2차원 테이블의 구조로 저장한 것 속성(애트리뷰터-attribute)과 튜플-tuple: 릴레이션의 열과 행 도메인-domain: 하나의 속성이 가질 수 있는 값들의 집합 널-null: 아직 모르거나 해당되는 속성이 없음을 표현하는 특별한 값 차수-degree: 하나의 릴레이션에서 속성의 전체 개수 카디널리티-cardinality: 하나의 릴레이션에서 튜플의 전체 개수 릴레이션과 데이터베이스의 구성 릴레이션은 릴레이션 스키마와 릴레이션 인스턴스로 구.. 학교수업, CS/데이터베이스 2024.02.29
데이터 모델링 데이터 모델링 => 현실 세계에 존재하는 데이터를 컴퓨터 세계의 데이터베이스로 옮기는 변환 과정 - 개념적 데이터 모델링: 현실세계의 중요 데이터를 추출하여 개념 세계로 옮긴다. - 논리적 데이터 모델링: 개념 세계의 데이터를 데이터베이스에 저장하는 구조로 표현한다. 데이터 모델 => 데이터 모델링의 결과물을 표현하는 도구 - 개념적 데이터 모델: 현실세계를 사람의 머리로 이해할 수 있도록 개념적 모델링의 결과물인 개념적 구조로 표현하는 도구이다. - 논리적 데이터 모델: 개념적 구조를 논리적으로 모델링하여 논리적 구조로 표현하는 도구이다. 개체-관계 모델 => 개체와 개체 간의 관계를 이용해 현실 세계를 개념적 구조로 표현하는 개념적 데이터 모델 - 개체: 현실 세계에서 조직을 운영하는 데 꼭 필요한 .. 학교수업, CS/데이터베이스 2024.02.29
데이터베이스 시스템 데이터베이스 시스템이란 - 데이터베이스에 데이터를 저장하고, 이를 관리하여 조직에 필요한 정보를 생성해주는 시스템 - 사용자, 데이터언어, 데이터베이스 관리 시스템, 데이터베이스, 컴퓨터로 구성 스키마: 데이터베이스에 저장되는 데이터 구조와 제약조건을 정의한 것 인스턴스: 스키마에 따라 데이터베이스에 실제로 저장된 값 데이터베이스 구조(3단계) - 외부 단계: 데이터베이스를 개별 사용자 관점에서 이해하고 표현함. 사용자에게 필요한 데이터베이스를 정의한 외부 스키마가 여러 개 존재할 수 있다. - 개념 단계: 데이터베이스를 조직 전체의 관점에서 이해하고 표현함. 데이터베이스 전체의 논리적 구조를 정의하는 개념 스키마가 하나만 존재한다. - 내부 단계: 데이터베이스를 저장 장치의 관점에서 이해하고 표현함. .. 학교수업, CS/데이터베이스 2024.02.29
데이터베이스 관리 시스템 파일 시스템 - 데이터를 파일로 관리하기 위해 파일의 생성, 삭제, 수정, 검색 기능을 제공하는 소프트웨어 - 응용 프로그램마다 필요한 데이터를 별도 파일로 관리한다 - 데이터 중복성과 데이터 종속성 문제가 발생한다 데이터베이스 관리 시스템 - 파일 시스템의 문제를 해결하기 위해 제시된 소프트웨어 - 조직에 필요한 데이터를 데이터베이스에 통합하여 저장해두고 이를 관리함 데이터베이스 관리 시스템의 주요 기능 - 정의 기능: 데이터베이스의 구조를 정의하거나 수정함 - 조작 기능: 데이터를 삽입, 삭제, 수정, 검색하는 연산을 함 - 제어 기능: 데이터를 항상 정확하고 안전하게 유지함 데이터베이스 관리 시스템의 장점 - 데이터 중복을 통제할 수 있다. - 데이터 독립성이 확보된다 - 데이터를 동시 공유할 수 .. 학교수업, CS/데이터베이스 2024.02.29