[MySQL] 데이터베이스 물리적 설계
·
Programming/SQL(DB)
물리적 설계 인덱스인덱스를 사용하는 이유: 원하는 데이터에 신속하게 접근하기 위함인덱스 파일, 데이터 파일로 구성된다.인덱스 파일은 쌍으로 구성된다. 데이터 레코드를 접근하기 위해 먼저 인덱스를 찾은 후 인덱스가 가리키는 주소를 따라가 레코드에 접근하도록 데이터를 저장한다.기본 인덱스탐색 키가 데이터 파일의 기본 키(primary key)인 인덱스기본 키 값에 따라 정렬된 데이터 파일에 대해 정의된다.각 테이블마다 최대 한 개의 기본 인덱스를 가질 수 있다. 보조 인덱스탐색 키 값에 따라 정렬되지 않은 데이터 파일에 대해 정의된다.기본 인덱스에 비해 순차 접근이 비효율적이다.밀집 인덱스(dense index)각 레코드의 키 값에 대해 인덱스에 엔트리를 유지한다.인덱스 유형PRIMARY(기본 인덱스)기본..
[MySQL] 데이터베이스 정규화
·
Programming/SQL(DB)
이상현상(Anomaly)불필요한 데이터 중복이 발생하여 릴레이션에 대한 데이터의 삽입, 수정, 삭제 연산을 수행할 때 발생하는 부작용삽입 이상(insertion anomaly)새 데이터를 삽입하기 위해 불필요한 데이터도 함께 삽입해야하는 문제갱신 이상(update anomaly)중복 튜플 중 일부만 변경하여 데이터가 불일치하게 되는 모순의 문제삭제 이상(deletion anomaly)튜플을 삭제하면 꼭 필요한 데이터까지 함께 삭제되는 데이터 손실의 문제 정규화이상 현상의 원인관련 없는 속성들을 하나의 릴레이션에 모아두고 있기 때문이다.정규화(normalization)릴레이션을 관련 있는 속성들로만 구성되도록 릴레이션을 분해(decomposition)하는 과정이다.함수적 종속성으로 속성들 간의 관련성을 판..
[MySQL] 데이터베이스 설계(개념적 설계, 논리적 설계)
·
Programming/SQL(DB)
데이터베이스 설계데이터베이스 설계의 과정 1단계: 요구 사항 분석2단계: 개념적 설계3단계: 논리적 설계4단계: 물리적 설계5단계: 구현요구사항 분석목적사용자의 요구사항을 수집하고 분석하여 개발할 DB의 용도 파악결과물요구사항 명세서주요 작업DB를 실제 사용할 주요 사용자의 범위 결정요구사항 분석 결과를 요구사항 명세서로 작성한다. 개념적 설계요구사항 명세로부터 개념적 스키마를 만들어 냄( 개념적 모델링 )요구사항 분석 결과를 바탕을 DB에 저장해둘 필요가 있다고 판단되는 데이터 요소를 추출하고 그들 간의 관계를 파악하여 표현함개체 타입, 속성, 관계 타입 식별속성의 도메인 결정키 속성 결정완성된 개념적 스키마는 E-R 다이어그램으로 표현한다. 개체 도출각 명사에 대해 속성인지 개체인지 분류중복 명사, ..
[MySQL] 데이터 모델링
·
Programming/SQL(DB)
데이터 모델링현실 세계에 존재하는 데이터를 컴퓨터 세계의 데이터베이스로 옮기는 변환 과정데이터베이스 설계의 핵심 과정 2단계 데이터 모델링개념적 데이터 모델링(conceptual modeling)현실 세계의 중요 데이터를 추출하여 개념 세계로 옮기는 작업논리적 데이터 모델링(logical modeling)개념 세계의 데이터를 데이터베이스에 저장하는 구조로 표현하는 작업 데이터 모델데이터 모델링의 결과물을 표현하는 도구(개념적, 논리적 모델이 존재함)개념적 데이터 모델현실 세계를 개념적으로 모델링하여 데이터베이스의 개념적 구조로 표현하는 도구ex) 개체-관계 모델(E-R ahepf)논리적 데이터 모델개념적 구조를 논리적으로 모델링하여 데이터베이스의 논리적 구조로 표현하는 도구ex) 관계 데이터 모델 데이터..
[MySQL] 프로그래머스 서울에 위치한 식당 목록 출력하기
·
Programming/SQL(DB)
https://school.programmers.co.kr/learn/courses/30/lessons/131118 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr   간단하게 문제의 요구사항을 정리해 보면1. 서울에 위치한 식당들의 식당 ID, 식당 이름, 음식 종류, 즐겨찾기 수, 주소, 리뷰 평균 점수를 조회2. 리뷰 평균점수는 소수점 세번째 자리에서 반올림 후 결과는 평균 점수를 기준으로 내림차순 정렬3. 만약 평균점수가 같다면 즐겨찾기 수를 기준으로 내림차순 정렬 식당의 정보를 담은 REST_INFO 테이블과테이블과 식당의 리뷰 정보를 담은 REST_REVIEW테이블의 관계를 파악하여 문제를 해..