데이터베이스에서 테이블의 수평 분할과 수직 분할은 데이터베이스 설계 및 관리에서 중요한 개념입니다. 이 두 가지 분할 방법은 데이터를 효율적으로 저장, 관리 및 검색하기 위해 사용됩니다. 다음으로 각 분할 방법에 대해 알아보겠습니다: 1. 수평 분할 (Horizontal Partitioning) 수평 분할은 테이블을 행(row) 기반으로 분할하는 것을 의미합니다. 이 방법은 주로 대량의 데이터를 가진 테이블을 관리하고 성능을 향상시키는 데 사용됩니다. 수평 분할의 주요 특징은 다음과 같습니다: - 로우 기반 분할: 특정 기준에 따라 테이블의 로우(행)들을 분할합니다. 예를 들어, 날짜 기준으로 로그 데이터를 월별로 분할할 수 있습니다. - 데이터 관리: 각 파티션은 별도의 물리적 테이블로 저장됩니다. 각..
Database
데이터베이스에서의 투명 데이터베이스에서 "투명성(transparency)"은 사용자나 응용 프로그램에게 데이터베이스 시스템의 내부 동작 및 구조를 숨기는 개념을 나타냅니다. 이것은 데이터베이스 시스템을 사용하는 사람들이 데이터를 쉽게 액세스하고 조작할 수 있도록 도와주는 중요한 개념입니다. 따라서 분산 데이터베이스에서 투명성을 유지한다는 것은 분산데이터베이스를 중앙집중식데이터베이스처럼 사용하도록 하겠다는 의미입니다. 분산 데이터베이스의 투명성 분산 데이터베이스 시스템은 여러 노드 또는 위치에서 데이터를 저장하고 관리하는 환경에서 데이터의 일관성과 효율성을 유지하는 데 중요합니다. 이러한 목표를 달성하기 위해 분산 데이터베이스는 다양한 투명성 유형을 제공합니다. 아래에서는 분산 데이터베이스를 위한 여섯 가..
데이터베이스 시스템에서 동시성과 병행 제어는 중요한 개념입니다. 동시성 (Concurrency) 데이터베이스 시스템에서 여러 사용자가 동시에 데이터에 접근하고 작업할 수 있는 능력을 말합니다. 동시성은 데이터베이스의 효율성과 성능을 향상시키는 중요한 특징입니다. 여러 사용자가 동시에 작업할 때, 데이터 일관성과 무결성을 보존하려면 병행 제어가 필요합니다. 병행 제어 (Concurrency Control) 병행 작업 중에 데이터 일관성을 유지하고 데이터베이스의 무결성을 보호하기 위한 메커니즘입니다. 병행 작업이 충돌하지 않도록 하고, 데이터베이스 시스템이 여러 작업을 동시에 수행할 수 있도록 도와줍니다. 병행 제어는 다음과 같은 주요 기술을 포함합니다: - Locking (잠금): 데이터베이스에서 데이터 ..
Entity (엔터티), Attribute (속성) 직사각형의 상단에 entity의 이름을 표기하고, 그 아래에 attribute의 이름을 작성합니다. 해당 attribute가 PK, FK일 경우 좌측에 표기해줍니다. Relation (관계) relation은 다음과 같은 기호들로 나타냅니다. 실선과 점선 실선은 식별 (Identifying) 관계를 나타냅니다. 식별 관계란 부모 entity 의 기본키 또는 유니크키를 자식 entity 의 기본키로 사용하는 관계를 말합니다. 즉, 자식 entity 는 부모 Entity 가 존재해야 존재할 수 있습니다. 점선은 비식별 (Non-Identifying) 관계를 나타냅니다. 비식별 관계란 부모 entity 의 기본키 또는 유니크키를 자식 entity 에서 외래키..
Joins Join 절은 둘 이상의 테이블 간에 관련된 열을 기준으로 행을 결합하는 데 사용됩니다. (inner) join 두 테이블 모두에 일치하는 값이 있는 레코드를 반환합니다 left (outer) join 왼쪽(driving) 테이블에서 모든 레코드를 반환하고, 오른쪽 테이블에서 일치하는 레코드를 반환합니다 right (outer) join 오른쪽(driven) 테이블에서 모든 레코드를 반환하고, 왼쪽 테이블에서 일치하는 레코드를 반환합니다 full (outer) join 왼쪽 또는 오른쪽 테이블에 일치하는 레코드가 있을 때 모든 레코드를 반환합니다 employees, dept_emp, departments 조인 총 세 개의 테이블을 합치기 위해서 2회의 조인을 해야합니다. select * fro..
기본적으로 SQL은 대소문자를 구분하지 않습니다 DML, DDL, DCL, DTL 명령어 종류 설명 명령어 DML (Data Manipulation Language) 레코드에 대한 CRUD select insert update delete DDL (Data Definition Language) 스키마에 대한 CRUD create alter drop rename truncate DCL (Data Control Language) 데이터베이스 접근에 대한 권한 추가/삭제 grant revoke DTL (Data Transactional Language) 트랜잭션 commit rollback savepoint Select Select 명령어는 데이터베이스에서 데이터를 선택하기 위해 사용됩니다. 반환되는 데이터는..
명령 프롬프트에서 MySql을 실행하는 과정을 적어보도록 하겠습니다. MySQL 실행 미리 다운로드 해놓은 데이터베이스 파일을 사용하도록 하겠습니다. 데이터가 저장된 경로를 복사하여 cmd 상에서 디렉토리를 이동하도록 하겠습니다. cd 데이터베이스파일저장경로 아래와 같이 MySQL이 설치된 경로를 찾아 복사합니다. cmd에서 "경로" -uroot -p 를 입력해준 후, 설정(MySQL 설치시 설정)한 패스워드를 입력합니다. "경로" -u root -p 외부의 sql 파일을 실행하는 source 명령어를 사용해 실행합니다. source 파일이름 show 명령어를 이용해 데이터베이스 목록을 확인해보겠습니다. show databases; use 명령어를 통해 employees 데이터베이스를 사용하도록 해보겠습..
출처 : 『혼자 공부하는 SQL』 (우재남, 한빛미디어) 관련 중요 용어 영어 한글 약자 설명 data 데이터 단편적인 정보 table 테이블 데이터를 입력하기 위한 표 형태, DBMS의 최소단위 Database 데이터베이스 DB 데이터의 저장소 Database Management System 데이터베이스 관리 시스템 DBMS 데이터베이스를 관리하는 시스템 또는 소프트웨어(MySQL) column, field 열(컬럼, 필드) 테이블의 세로. 테이블은 여러 개의 열로 구성됨 column name, field name 열 이름 각 열을 구분하기 위한 이름 data type 데이터 형식 열에 저장될 데이터의 형식(숫자/문자/날짜 등) row, record 행(로우, 레코드) 테이블의 가로. 실질적인 진짜 데..
출처 : 『혼자 공부하는 SQL』 (우재남, 한빛미디어) DBMS 제작사 작동 운영체제 기타 MySQL Oracle Unix, Linux, Windows, Mac 오픈 소스(무료), 상용 MariaDB MariaDB Unix, Linux, Wundows 오픈 소스(무료), MySQL 초기 개발자들이 독립해서 만듦 PostgreSQL PostgreSQL Unix, Linux, Windows, Mac 오픈 소스(무료) Oracle Oracle Unix, Linux, Windows 상용 시장 점유율 1위 SQL Server Microsoft Windows 주로 중/대형급 시장에서 사용 DB2 IBM Unix, Linux, Windows 메인프레임 시장 점유율 1위 Access Microsoft Windows ..