데이터베이스 (6) - NoSQL, 데이터베이스 분할과 샤딩
·
CS/데이터베이스
NoSQLNoSQL의 특징레코드를 테이블 형태 이외 다양한 형태로 저장할 수 있고, SQL 이외의 방법으로 저장된 데이터를 다룰 수 있다키-값 데이터베이스데이터베이스에 레코드를 키-값 쌍으로 저장하는 데이터베이스가장 단순한 형태의 NoSQL 데이터베이스 유형Redis, Memcached인메모리 데이터베이스: 레코드를 보조기억장치가 아닌 메모리에 저장해 빠른 데이터베이스 접근 속도 제공캐시, 세션 등 가벼운 정보 저장하는 경우 많음도큐먼트 데이터베이스도큐먼트: 정형화되어 있지 않은 NoSQL 레코드의 단위 (JSON, XML 형식)MongoDBJSON 키가 필드, JSON 데이터 하나 하나가 RDBMS의 행과 같음 (MongoDB에서는 BSON)고정된 스키마가 없기 때문에 유연한 스키마를 가질 수 있음도큐..
데이터베이스 (5) - 데이터베이스 설계
·
CS/데이터베이스
ER 다이어그램ERD: 데이터베이스에 저장되는 엔티티의 구조를 모델링유지보수 용이, 개발자 간 원활한 소통 가능IE 표기법요즘 많이 사용- 한 명의 고객이 0개 이상의 주문을 할 수 있음 식별/비식별 관계식별 관계: 참조되는 테이블의 기본 키를 참조하는 테이블의 외래 키이자 기본 키로 활용되는 경우비식별 관계: 참조되는 테이블의 기본 키를 참조하는 테이블의 기본 키가 아닌 일반적인 외래 키로 이용할 경우정규화각종 기술 면접의 고난도 질문으로 자주 출제됨실무에서 정규화를 수행하지 않더라도 ‘특정 상황에서 왜 정규화를 하지 않는지’에 대해 묻는 경우도 있음실무에서는 제3 정규형, BCNF 정도까지만 한다고 함제1 정규형모든 속성이 원자 값을 가진다제2 정규형제1 정규형을 만족하고, 기본 키가 아닌 모든 필드..
데이터베이스 (4) - 효율적 쿼리
·
CS/데이터베이스
서브 쿼리와 조인서브 쿼리: 다른 SQL 문이 포함된 SQL 문조인: 2개의 테이블을 하나로 합치는 것여러 테이블에 질의하기SELECT 테이블1.필드1, 테이블1.필드2, 테이블2.필드3 FROM 테이블1, 테이블2 WHERE 테이블1.필드1 = 테이블2.필드2;서브 쿼리SELECT문 안에 SELECT문이 포함된 서브 쿼리- 사용자별로 작성한 글의 개수 조회DELETE문 안에 SELECT문이 포함된 서브 쿼리- email이 ‘kim@example.com’인 사용자의 글을 삭제조인INNER JOIN테이블1과 테이블2의 레코드 중에서 조인 조건을 모두 만족하는 데이터만 선택해서 결합SELECT 필드 FROM 테이블1 INNER(생략 가능) JOIN 테이블 2 ON 조인 조건;LEFT/RIGHT OUTER J..
데이터베이스 (3) - SQL
·
CS/데이터베이스
데이터 정의 언어(DDL)CREATE데이터베이스, 테이블, 뷰, 인덱스, 사용자까지 데이터베이스에서 관리될 수 있는 대상 정의CREATE DATABASE 데이터베이스_이름;CREATE TABLE 테이블_이름 ( 필드_이름1 필드_타입, 필드_이름2 필드_타입, 필드_이름3 필드_타입, ... [CONSTRAINT 제약_조건_이름] PRIMARY KEY (필드_이름), [CONSTRAINT 제약_조건_이름] FOREIGN KEY (필드_이름) REFERENCES 테이블_이름2 (필드_이름), [CONSTRAINT 제약_조건_이름] UNIQUE (필드_이름));필드 제약 조건`PRIMARY KEY`: 특정 필드를 기본 키로 지정`UNIQUE`: 특정 필드가 고유한 값을 갖도록 설정 (NULL 가능)`FORE..
데이터베이스 (2) - RDBMS 기본
·
CS/데이터베이스
테이블의 구성: 필드와 레코드필드 타입키후보 키유일성과 최소성을 모두 만족하는 키학번, 이메일, 전화번호가 고유한 값이라면 후보 키로 선정할 수 있음기본 키후보 키 중 하나를 선택한 키중복된 값 XNULL 값을 가질 수 없음외래 키다른 테이블의 기본 키를 참조테이블의 관계일대일 대응 관계하나의 레코드가 다른 테이블의 레코드 하나에만 대응되는 경우일대다 대응 관계하나의 레코드가 다른 테이블의 여러 레코드와 대응될 수 있는 경우다대다 대응 관계한 테이블의 여러 레코드가 다른 테이블의 여러 레코드와 대응되는 경우무결성 제약 조건데이터베이스에 저장된 데이터의 일관성과 유효성을 유지하기 위해 지켜야 하는 조건도메인 제약 조건테이블이 가질 수 있는 필드 타입과 범위에 대한 규칙필드 데이터는 원자 값을 가져야 함지정..
데이터베이스 (1) - 데이터베이스의 큰 그림
·
CS/데이터베이스
데이터베이스와 DBMSDBMS의 종류관계형 데이터베이스(RDBMS)NoSQL 데이터베이스서버로서의 DBMS사용자(개발자)가 만든 프로그램과 상호작용 DBMS 클라이언트는 DBMS에 쿼리를 보냄SQL 언어 사용DDLCREATE, ALTER, DROP, TRUNCATEDMLSELECT, INSERT, UPDATE, DELETEDCLCOMMIT, ROLLBACK, SAVEPOINTTCLGRANT, REVOKE면접에서 SQL 질문할 수 있지만, 지엽적인 문법보다는 DML 사용법 정도의 난이도가 나온다고 함파일 대신 데이터베이스를 이용하는 이유데이터 일관성 및 무결성 제공이 어려움불필요한 중복 저장이 많음데이터 변경 시 연관 데이터 변경이 어려움정교한 검색이 어려움백업 및 복구 어려움데이터베이스의 저장 단위와 트..