DATABASE 7

생활코딩 - DATABASE 관계형 데이터 모델링 - 물리적 데이터 모델링

물리적 데이터 모델링 논리적 데이터 모델링에서 만든 이상적인 표를 구체적인 제품에 맞는 현실적인 표로 만드는 과정 성능이 중요하다! 일단 운영해보고 데이터가 쌓인 후 부하가 큰 부분이 병목현상이 생기는지 확인 find slow query 성능을 향상시키는 방법 -인덱스 : 읽기성능 향상, 쓰기성능 저하, 저장공간 많이 차지함 -애플리케이션 : 캐시(cache) 사용해 데이터베이스 부하 줄임 (cache: 입력에 따른 실행결과 저장해두고 이후 동일한 입력에 대해 저장해둔 결과 출력하는 것) -역정규화(다른 수단들을 시도해도 개선되지 않을 때 사용함. 단점이 많음) 역정규화(반정규화, denormalization) 정규화를 통해 만든 이상적인 표를 성능이나 개발의 편의성을 위해 표를 조작하는 것. 정규화 :..

DATABASE 2021.05.27

생활코딩 - DATABASE 관계형 데이터 모델링 - 논리적 데이터 모델링

논리적 데이터 모델링 개념적 데이터 모델링에서 정의한 개념을 관계형 데이터 베이스에 맞게 데이터 형직을 잘 정리정돈 하는 것. Mapping Rule ERD -> 관계형 데이터 베이스에 맞는 형식으로 전환할 때 사용하는 방법론. ① Entity → Table ② Attribute → Column ③ Relation → PK, FK 위의 ERD로 관계형 데이터베이스 형식에 맞게 전환해본다. ① Entity → Table 저자, 글, 댓글 테이블을 만든다. ② Attribute → Column attribute들의 도메인에 맞게 Column을 만든다. 속성의 제약조건들(Primary key여부, unique, auto_increasement, type)에 맞게 만든다. 이 과정을 column에 대한 도메인을..

DATABASE 2021.05.19

생활코딩 - DATABASE 관계형 데이터 모델링 - 개념적 데이터 모델링

개념적 데이터 모델링 논리적, 물리적 모델링에 대한 지식을 가지고 개념적 모델링을 해야한다. 개념적 데이터 모델링의 효용 1. 현실에서 개념을 추출하는 필터역할을 한다. 2. 개념에 대해 다른 사람들과 대화할 수 있는 언어로 작용한다. 개념적 데이터 모델링의 도구 : ERD(Entitiy Relationship Diagram) 왼쪽의 프로토타입을 오른쪽의 ERD로 나타낼 수 있다. ERD의 구성 ○ 정보 ▭ 그룹 - 연관된 정보들 ◇ 관계 - 정보 그룹 사이의 관계 ERD는 쉽게 표로 전환할 수 있다. 왼쪽의 시안의 구성을 보고 자료들을 어떤 표로 나타낼지 정해야 한다. 윗쪽 표 한 표 안에 모든 정보를 담는다. 한 눈에 보기 좋지만 중복되는 자료가 있을 수 있다. 표가 표 안에 있는 구조이다. 관계형 ..

DATABASE 2021.05.19

생활코딩 - DATABASE 관계형 데이터 모델링 - 데이터 모델링의 순서, 업무파악

데이터 모델링의 순서 1. 업무파악 하려고 하는 일을 의뢰인과 개발자가 잘 협력해서 알아내는 과정. 원하는 기능이 무엇인가? 산출물 : 요구사항 분석서 2. 개념적 데이터 모델링 하고자 하는 일의 개념들과 그 개념들 사이의 관계를 밝힌다. 산출물 : ER 다이어그램(ERD) 3. 논리적 데이터 모델링 관계형 데이터 베이스에 맞는 표로 개념들을 전환한다. 산출물 : 관계형 데이터 모델 4. 물리적 데이터 모델링 어떤 데이터베이스 제품을 사용할지 선택 데이터베이스 제품에 최적화된 코드를 작성, 실제 표를 만든다 산출물 : 표를 생성할 수 있는 SQL 코드 업무파악 의뢰인과 개발자 사이에 오해를 줄이고 서로 원하는 것을 동기화 하기 위해서는 많은 대화가 필요하다. 말로만 의견을 나누는 것 보다 UI를 같이 그..

DATABASE 2021.04.22

생활코딩 DATABASE - Join

참고할 사이트 https://sql-joins.leopard.in.ua/ join의 형태를 그림으로 나타낸 사이트 Join을 하기 전에... table은 한 가지 주제만 가지고 있어야 한다 -> 중복이 없는 것을 목표로 table을 처음부터 잘 설계해둬야 나중에 고생하지 않는다. 위의 topic table은 중복되는 자료가 있다. 아래처럼 세 테이블로 나눠서 저장하면 수정이 편해지고, 용량도 덜 차지할 수 있다. 하지만 보기가 불편해진다. 이 세 테이블을 위의 큰 테이블처럼 한번에 보기 위해서는 JOIN이라는 기능을 사용하면 된다. JOIN은 어떤 조인인지(LEFT JOIN, RIGHT JOIN...) 명시해주고, ON뒤에는 두 자료를 연결할 때 기준이 되는 key들을 적어주면 된다. LEFT JOIN ..

DATABASE 2021.04.21

생활코딩 - DATABASE2 MySQL

file은 사용하기 쉽고 어디에나 있고 전송하기 편리 / 정보를 저장 file만으론 정보를 효과적으로 CRUD(추가,수정,삭제,읽기) 하기 어려움 DB: 누구나 쉽게 데이터를 정리 정돈할 수 있는 전문적인 SW 관계형 데이터베이스: 데이터를 표의 형태로 정리정돈 가능, 정렬 검색 빠르고 편리, 안전 MySQL: 관계형 데이터베이스의 주요한 기능을 대부분 가지는 데이터베이스 시스템 무료이며 오픈소스 -> 웹과함께 폭발적인 동반 성장 데이터베이스의 목적 스프레드시트와 데이터베이스 공통점 : 자료를 표의 형태로 표현. 비슷한 기능을 사용할 수 있다. 차이점 : 스프레드시트 - 클릭으로 제어 / 데이터베이스 - 코딩(컴퓨터언어)로 제어 의미있는 데이터들은 웹에 공유, 빅데이터나 인공지능 통해 분석 등 여러가지로..

DATABASE 2021.04.12

생활코딩 - DATABASE1

Data가 중요한 이유 - 가공해 다양한 일을 할 수 있기 때문 file - data를 저장, 가공할 수 있는 수단 DATABASE - 데이터파일이 가진 한계(성능, 보안, 편의성...)를 극복하기 위해 만들어진 data 처리용 소프트웨어 - MySQL, Oracle, PostgreSQL, MongoDB... Database의 본질 핵심 기능은 네 가지로 정리할 수 있다 입력(input) - 생성(Create), 수정(Update), 삭제(Delete) 출력(output) - 읽기(Read) CRUD라고 하며, 그 이외의 기능들은 CRUD를 보좌하는 보조적인 기능들에 불과하다. File vs Database 방대한 자료를 저장한다면... File 한 가지 형태로만 저장됨 전체적으로 가공이 불가능하다 문서..

DATABASE 2021.04.12