728x90
Database
31

[DATABASE] attribute data type

Number 종류 설명 MySQL 정수 정수를 저장할 떄 사용 TYNYINT SMALLINT MEDIUMINT INT or INTEGER BIGINT 부동 소수점 (floating-point) 실수를 저장할 때 사용하며 고정 소수점 방식에 비해 정확하지 않다 FLOAT DOUBLE or DOUBLE PRECISION 고정 소수점 (fixed-point) 실수를 정확하게 저장할 때 사용 DECIMAL or NUMERIC String 종류 설명 MySQL 고정 크기 문자열 최대 몇 개의 문자를 가지는 문자열을 저장할지 지정한다. 만약 저장될 문자열의 길이가 최대 길이보다 작으면 나머지는 공백(space)로 채워서 저장한다. 예를 들어 CHAR(4)일 때 "a, 이름, 대한민국"과 같이 저장된다. CHAR(n..

Database 2023.11.17

[DATABASE] 데이터베이스와 테이블 생성, 삭제

데이터베이스 생성 CREATE DATABASE {Database name}; 데이터베이스 리스트 확인 SHOW DATABASES; 사용 중인 데이터베이스 확인 SELECT database(); 사용할 데이터베이스 선택 USE {Database name}; 데이터베이스 삭제 DROP DATABASE {Database name}; 테이블 생성 create table Article ( id INT PRIMARY KEY, title VARCHAR(50) NOT NULL UNIQUE, comment_id INT ); 테이블 삭제 DROP TABLE {table name};

Database 2023.11.17

[DATABASE] constraints의 종류

relation database의 relations들이 지켜야하는 제약사항 implicit constraints relational data model 자체가 가지는 constraints relation은 중복된 tuple을 가질 수 없다 relation 내에서는 같은 이름의 attribute를 가질 수 없다 schema-based constraints DDL을 통해 schema에 직접 명시할 수 있는 constraints explicit constraints라고도 함 1. domain constraints attribute의 value는 해당 attribute의 domain에 속한 value여야 한다. 예를 들어서 email attribute에 포맷에 맞지않는 "email"이 들어가 있으면 안되고 "e..

Database 2023.10.15

[DATABASE] Key의 종류

super key relation에서 tuples를 unique하게 식별할 수 있는 attrubutes set 예를 들어 User(id, name, email, phone)의 super key는 {id, name, email, phone}, {id, name}, {name, email} 등이 된다. {name}과 같은 경우에는 동명이인과 같은 상황이 발생할 수 있기때문에 superkey가 될 수 없다. candidate key 어느 한 attrubute라도 제거하면 unique하게 tuples를 식별할 수 없는 super key super key 중 가장 최소한의 attribute를 가지는 key 예를 들어 위 super key 예시에서 {id, name, email, phone}는 email과 phon..

Database 2023.10.15

[DATABASE] relation data model에서 relation의 의미가 뭘까?

set (집합) 서로 다른 요소들을 가지는 collection 순서를 보장하지 않음 수학의 relation과 의미 아래와 같이 A 집합과 B 집합이 있을때 각각의 요소들을 선택하여 쌍을 만든다. 그러면 (1, p), (1, q), (1,r), (2, p), (2,q), (2,r) 이 생길 것이다. 그리고 이렇게 표현한 것을 카르테시안 곱(cartesian product)라고 한다. 이 카르테시안 곱이 relation과 관련이 있는데 아래처럼 집합이 A, B 두 개가 있을 경우 binary relation 이라고 한다. 여기서 relation의 의미가 바로 A x B 카르테시안 곱의 부분 집합이라는 것이다. 그리고 아래처럼 집합이 n개까지 있다고 한다면 n-ary relation 이라 하고 n개의 집합에 ..

Database 2023.10.15

[DATABASE] Database Language로 어떤 것들이 있을까?

Data Definition Language (DDL) conceptual schema를 정의하기 위해 사용되는 언어 Storage Definition Language (SDL) internal schema를 정의하는 용도로 사용되는 언어 relation DBMS에서는 SDL이 없고 파라미터 등의 설정으로 대체한다고 함 View Definition Language (VDL) external schema를 정의하기 위해 사용되는 언어 대부분의 DBMS에서는 DDL이 VDL 역할까지 수행 Data Manipulation Language (DML) 데이터 추가, 삭제, 수정, 검색 등의 기능을 제공하는 언어 Data Control Language (DCL) 데이터 핸들링 권한 설정, 데이터 무결성 처리를 ..

Database 2023.10.13

[DATABASE] three-schema architecture

DB System을 구축하는 architecture Database에서의 변경이 Application에 영향을 주지 않도록 하기 위한 목적으로 사용 다음 세 가지 level이 존재하며 각각 schema가 정의되어 있음 external level: external schema conceptual level: conceptual schema internal level: internal schema 각 level을 독립시켜서 어느 level에서의 변화가 상위 level에 영향을 주지 않는다. 예를 들어 internal level에서 변경이 있어도 conceptual level에는 영향을 주지 않는다. 대부분의 DBMS가 이런 three level 구조를 어느 정도 따르지만 명시적으로 나누지는 않음 결국 데이터..

Database 2023.10.13

[DATABASE] Database Schema와 State의 개념

Schema(스키마) Data Model을 바탕으로 DB 구조의 골격을 나타낸 것 Schema는 DB를 설계할 때 정해진 후 자주 바뀌지 않음 relational data model의 schema를 예로 아래와 같이 Student와 Book이 있고 각각 어떤 attribute(속성)이 있는지 나타내는 것이다. DB State DB의 실제 데이터는 자주 바뀔 수 있음 특정 시점의 DB에 있는 데이터를 DB State 또는 snapshot이라함

Database 2023.10.13

[DATABASE] Data Models가 뭘까?

Data Model은 데이터베이스의 구조를 원하는 형태로 만들 수 있도록하는 수단을 제공한다. conceptual data models, logical data models, physical data models로 분류된다. 1. conceptual data models 일반 사용자들이 쉽게 이해할 수 있는 개념들로 이루어진 모델 비지니스 요구 사항을 추상화하여 설명할 떄 사용 대표적으로 아래와 같은 entity-relationship model이 있다 %%{ init: { 'theme': 'default', 'themeVariables': { 'primaryColor': '#000', 'primaryTextColor': '#000', 'lineColor': '#fff' } } }%% erDiagram ..

Database 2023.10.13

벡엔드에서 데이터베이스가 중요한 이유

%%{ init: { 'theme': 'dark', 'themeVariables': { 'primaryColor': '#fff', 'primaryTextColor': '#fff' } } }%% sequenceDiagram autonumber Web Server ->> WAS: 서비스 요청 WAS ->> DB: 데이터 요청 DB ->> WAS: 데이터 응답 WAS ->> Web Server: 서비스 응답 위의 Flow Chart에서처럼 Client는 Web Server에서 서비스를 요청하면 WAS가 DB에서 데이터를 주고 받는다. 최종적으로 "1(서비스 요청)~ 4(서비스 응답)" 만큼 시간이 소요된다. 이 시간을 단축시키기위해서 비지니스 로직의 시간복잡도를 개선하는 방법도 있지만 데이터베이스를 통한 속도..

Database 2023.10.12
728x90