CS 지식

CS 지식/데이터베이스

[CS] 트랜잭션

트랜잭션 (Transaction) 트랜잭션은 데이터베이스의 상태를 변환시키기 위해 수행하는 작업의 단위입니다. 이는 아래의 질의어(SQL)를 이용하여 데이터베이스를 접근하는 것을 의미합니다. SELECT INSERT DELETE UPDATE 여기서 작업의 단위는 질의어 한 문장이 아닙니다. 작업의 단위는 많은 질의어 명령문들을 사람이 정하는 기준에 따라 정하는 것을 의미합니다. 예를 들어, 게시판에 글을 작성하는 상황을 생각해볼 수 있습니다. 사용자가 게시판에 글을 작성하고 올리기 버튼을 누릅니다. (INSERT 문을 사용해 게시물 데이터 추가) 게시판에 다시 돌아오면 사용자가 쓴 글이 업데이트된 상태를 볼 수 있습니다. (SELECT 문을 사용해 최신 정보 유지) 여기서 작업의 단위는 INSERT 문과..

CS 지식/데이터베이스

[CS] 인덱스

인덱스 (Index) 인덱스는 RDBMS에서 검색 속도를 높이기 위해 사용하는 하나의 기술입니다. 인덱스는 색인으로서 해당 테이블의 컬럼을 색인화(따로 파일로 저장)합니다. 따라서, 검색 시 해당 테이블의 레코드 전체를 스캔하는 것이 아니라 색인화 되어있는 인덱스 파일을 검색하여 검색 속도를 빠르게 합니다. 인덱스 구조는 Tree 구조로 색인화되고, RDBMS에서는 Balance Search Tree 구조로 사용됩니다. 인덱스의 원리 인덱스를 어느 한 컬럼에 사용하면, 초기 테이블 생성 시 FRM, MYD, MYI 3개의 파일이 만들어집니다. FRM : 테이블 구조가 저장되어 있는 파일 MYD : 실제 데이터가 있는 파일 MYI : 인덱스 정보가 들어있는 파일 인덱스를 해당 컬럼에 만들게 되면 해당 컬럼..

CS 지식/데이터베이스

[CS] 정규화

정규화 (Normalization) 이상 현상을 예방하고 효과적인 연산을 하기 위해 데이터 정규화를 수행합니다. 정규화는 하나의 릴레이션에 하나의 의미만 존재하도록 릴레이션을 분해하는 과정입니다. 데이터의 중복을 없애면서 불필요한 데이터를 최소화시킵니다. 무결성을 지키고, 이상 현상을 방지합니다. 테이블 구성을 논리적이고 직관적으로 합니다. 데이터베이스 구조를 확장에 용이하게 합니다. 제1 정규화 (1NF) 제1 정규화란 테이블의 컬럼이 원자 값을 갖도록 테이블을 분해하는 것입니다. 분해된 테이블의 모든 속성에는 반복되는 그룹이 나타나면 안됩니다. 또한, 기본키를 사용하여 모든 행을 고유하게 식별할 수 있어야 합니다. 제2 정규화 (2NF) 제2 정규화란 제1 정규화를 진행한 테이블에 대해 완전 함수 종..

CS 지식/데이터베이스

[CS] 이상 현상

이상 현상 (Anomaly) 이상 현상은 테이블에서 일부 속성들의 종속이나 데이터의 중복으로 인해 데이터를 삽입, 갱신, 삭제할 때 논리적으로 생기는 오류를 말합니다. 학번 이름 나이 전공 강의코드 강의명 100 홍길동 23 물리 C1 컴퓨터구조 200 김현수 28 디자인 O4 운영체제 300 이지은 21 경영 N3 네트워크 300 이지은 21 경영 A5 알고리즘 400 박시연 25 컴퓨터 D2 데이터베이스 삽입 이상 (Insertion Anomaly) 삽입 이상은 데이터를 삽입할 때 의도하지 않은 데이터까지 삽입해야만 추가가 가능한 현상을 뜻합니다. 기본키가 {학번, 강의코드}인 경우, 강의를 수강하지 않은 학생은 강의코드가 없는 현상이 발생합니다. 결국 강의코드가 Null이 될 수 밖에 없는데, 기본..

CS 지식/데이터베이스

[CS] SQL - JOIN

JOIN (조인) JOIN(조인)은 두 개 이상의 테이블이나 데이터베이스를 연결하여 데이터를 검색하는 방법을 말합니다. 테이블을 연결하려면 적어도 하나의 칼럼은 서로 공유되고 있어야 합니다. SELECT 테이블별칭.조회할컬럼, 테이블별칭.조회할컬럼 FROM 기준테이블 별칭 JOIN 조인테이블 별칭 ON 기준테이블별칭.기준키 = 조인테이블별칭.기준키 ... INNER JOIN INNER JOIN은 두 테이블의 교집합을 의미합니다. 결과값은 기준 테이블과 JOIN하는 테이블의 중복되는 값입니다. SELECT A.name, B.age FROM A INNER JOIN B ON A.id = B.id; LEFT OUTER JOIN LEFT OUTER JOIN은 왼쪽 테이블을 기준으로 JOIN하는 것을 의미합니다. ..

CS 지식/데이터베이스

[CS] SQL - 추가 문법 정리

WHERE WHERE 절을 사용하면 특정 조건에 해당하는 데이터만 조회할 수 있습니다. SELECT * FROM STUDENT WHERE age >= 25; AND / OR 논리 연산자를 사용하면 여러 조건을 설정하여 데이터를 조회할 수 있습니다. 여기서 AND가 OR보다 더 높은 우선순위를 가집니다. SELECT * FROM STUDENT WHERE age >= 25 AND gender = 'MALE'; BETWEEN BETWEEN 연산자를 사용하면 특정 범위에 해당하는 데이터를 조회할 수 있습니다. SELECT * FROM STUDENT WHERE age BETWEEN 20 AND 25; IN () IN 연산자를 사용하면 특정 값이 포함된 데이터를 조회할 수 있습니다. IN 연산자는 '='를 여러 번..

CS 지식/데이터베이스

[CS] SQL - 기본 명령어

SQL (Structured Query Language) SQL은 DB에서 데이터를 저장, 관리, 조회하기 위한 표준 언어입니다. SQL 문법은 크게 세 가지로 구분됩니다. DDL : DB에 테이블을 생성, 삭제, 변경하기 위한 명령어 DML : DB에 데이터를 조회, 삽입, 갱신, 삭제하기 위한 명령어 DCL : DB에 저장된 데이터 관리를 위해 보안성, 무결성 등을 제어하기 위한 명령어 DDL CREATE CREATE 명령어는 DB와 테이블을 생성할 때 사용합니다. # DB_NAME의 이름을 가지는 데이터베이스 생성 CREATE DATABASE {DB_NAME}; # TABLE_NAME의 이름을 가지는 테이블 생성 # 테이블에 들어갈 컬럼과 해당 컬럼의 데이터 타입 정의 가능 CREATE TABLE ..

CS 지식/데이터베이스

[CS] 키의 개념과 종류

키 (Key) 키(Key)는 데이터베이스에서 조건에 만족하는 튜플을 찾거나 순서대로 정렬할 때 다른 튜플들과 구별할 수 있는 유일한 기준이 되는 속성(Attribute)입니다. 후보키 (Candidate Key) 후보키는 릴레이션을 구성하는 속성들 중에서 튜플을 유일하게 식별할 수 있는 속성들의 부분집합을 의미하며, 이는 기본키로 사용할 수 있는 키들을 일컫습니다. 모든 릴레이션은 반드시 하나 이상의 후보키를 가져야 합니다. 릴레이션에 있는 모든 튜플에 대해서 유일성과 최소성을 만족시켜야 합니다. 유일성 : 하나의 튜플을 유일하게 식별할 수 있어야 합니다. 최소성 : 유일성을 만족하면서, 최소한의 속성(하나 이상)으로 구성되어야 합니다. 기본키 (Primary Key) 기본키는 후보키 중에서 선택한 주키..

damon-911
'CS 지식' 카테고리의 글 목록