CS Knowledge/DataBase (7) 썸네일형 리스트형 DataBase - Plus 이번 블로그에서는 그동안 정리하지 못한 추가적인 내용에 대해서 정리해보고자 한다. 1. DDL vs DML vs DCL 모두 기적으로 DBMS에서 사용되는 SQL언어의 종류로 SQL을 위의 세가지의 범주로 구분한다고 이해하면 쉽다. DDL (Data Definition Language) - 데이터 베이스 구조를 정의하거나 변경하는데 사용된다. 구조는 테이블, 스키마, 제약 조건, 인덱스 등을 의미한다. - 객체를 관리 (테이블, 뷰, 인덱스 등) - 스키마를 정의하고 조작하는데 사용된다. 주요 명령어 CREATE : 데이터베이스 객체 생성 ALTER : 데이터 베이스 객체의 구조를 변경 DROP : 데이터 베이스 객체를 삭제 TRUNCATE : 테이블 내의 모든 데이터 삭제 RENAME : 데이터 베이스.. DataBase - Join 이번 블로그에서는 조인에 대해서 정리해보고자 한다. 조인 - 조인이란 하나의 테이블이 아닌 두 개 이상의 테이블을 묶어서 하나의 결과물을 만드는 것을 의미한다. - MySQL은 JOIN 쿼리를 사용하고 MongoDB에서는 lookup이라는 쿼리를 사용한다. (하지만 MongoDB에서는 조인에 대한 성능이 떨어져 되도록이면 사용하면 안된다) 1. 종류 1. 내부 조인 (교집합) : 왼쪽 테이블과 오른쪽 테이블의 두 행이 모두 일치하는 행이 있는 부분만 결과 테이블에 표기 - DEFAULT - INNER 사용 - 예를 들어, TABLEA에 데이터 중 TABLEB의 데이터와 연결되는 데이터가 없을 시, 해당 TABLEA의 데이터는 반환하지 않는다. SELECT A.name, B.name FROM TABLEA .. DataBase - Index 이번 블로그에서는 인덱스에 대해서 알아보려고 한다. 인덱스 - 데이터를 빠르게 찾을 수 있는 하나의 장치 - 인덱스는 보통 'B-트리' 자료 구조로 이루어진다. 1. B-트리 - 루트 노드, 브랜치 노드, 리프 노드로 구성 39 83 88 46 53 - 46 53 57 83 - 89 92 100 55 57 - 만약 57을 찾는다면 이동 경로는 39-83-46-53-57-57 이 된다. - 루프노드 -> 브랜치 노드 -> 리프 노드 순으로 이동한다. 2. 인덱스가 효율적인 이유 - 모든 요소에 접근할 수 있는 균형 잡힌 트리구조와 트리깊이의 대수확정성 때문에 - 대수 확장성 : 트리 깊이가 리프 노드 수에 비해 매우 느리게 성장하는 것을 의미. 3. 인덱스를 만드는 방법 MySQL - 클러스터형 인덱스와 .. DataBase - Type 이번에는 데이터베이스의 종류에 대해서 정리해보고자 한다. 1. 관계형 데이터베이스 2. NoSQL 데이터베이스 1. 관계형 데이터베이스(RDBMS) - 행과 열을 가지는 표 형식 데이터를 저장 - SQL이라는 언어를 써서 조작 - MySQL(SQL 사용), PostgreSQL, Oracle(PL/SQL 사용), SQL Server(T-SQL 사용), MSSQL 등 - 운영체제와 호환여부를 판단해야 함. PostgreSQL - VACCUM(디스크 조작이 차지하는 영역을 회수 가능) - 최대 테이블 312TB - JSON으로 쿼리처리 허용 - 지정 시간에 복구하는 기능 - 로깅, 접근 제어, 중첩된 트랜잭션, 백업 등의 기능을 제공 MySQL 특징 - 대부분의 운영체제와 호환 - C, C++ 기반 - MyI.. DataBase - Transaction and Integrity 트랜잭션과 무결성에 대해서 이번 블로그에서 정리해보려고 한다. 트랜잭션 - 데이터베이스에서 하나의 논리적 기능을 수행하기 위한 작업의 단위를 말한다. 데이터베이스에 접근하는 방법은 쿼리이므로, 여러개의 쿼리들을 하나로 묶는 단위를 말한다. - 특징 : 원자성, 일관성, 독립성, 지속성 (ACID) 무결성 - 개체 무결성 : 기본키로 선택된 필드는 NULL을 허용하지 않는다. - 참조 무결성 : 서로 참조 관계에 있는 두 테이블의 데이터는 항상 일관된 값을 유지해야 한다. - 고유 무결성 : 특정 속성에 대해 고유한 값을 가지도록 조건이 주어진 경우 그 속성 값은 모두 고유한 값을 가진다. - NULL 무결성 : 특정 속성에 NULL이 올 수 없다는 조건이 주어진 경우, 그 속성 값은 NULL이 될 수 없.. DataBase - ERD, 정규화 ERD에 대해서 정리를 하려고 한다. ERD - 데이터베이스를 구축할 때 가장 기초적인 뼈대 - 이 부분을 먼저 신경써서 서비스를 구축해야한다. - 건물을 지을 때, 골조로 생각. - 시스템을 설계할때 시스템의 요구사항에 맞추어 설계하는 것이 일반적 "ERD란 시스템의 요구사항에 맞추어 데이터베이스에 있는 테이블간 관계도를 의미한다." ERD의 장점, 단점 장점 시스템 설계 중 디버깅 또는 비즈니스 프로세스 재설계시 참고 가능 관계형 구조로 표현할 수 있는 데이터를 구성하는데 유용 단점 비정형 데이터를 충분히 표현할 수 없다. 비정형 데이터 - 비구조화 데이터를 의미하며, 미리 정의된 데이터 모델이 없거나 미리 정의된 방식으로 정리되지 않은 정보. ERD 예시 요구사항 - 영업사원은 0~N명의 고객을 관.. DataBase - Basic 이번엔 전체적인 데이터베이스의 개념적인 내용에 대해서 정리해보려고 한다. 기본 용어 정리 DB : 실시간 접근, 동시 접속 가능한 데이터 저장소 DBMS : 데이터 베이스안에 있는 데이터를 관리하는 통합 시스템 Query Language : DBMS를 통해 DB에 데이터를 삽입, 삭제, 수정, 조회 등을 수행하는 언어. 1. 엔터티 정의) 현실세상의 여러개의 속성을 가진 하나의 명사. 예시) 회원, 상품 등 약한 엔터티 : 다른 엔터티에 종속적인 엔터티 강한 엔터티 : 다른 엔터티에 종속적이지 않고 혼자서도 성립가능한 엔터티 2. 릴레이션 정의) 데이터 베이스에서 정보를 구분하여 저장하는 기본 단위, 엔터티에 관한 데이터를 데이터베이스는 릴레이션 하나에 담아서 관리한다. 테이블 : 관계형 데이터베이스에서.. 이전 1 다음