반응형

Computer Science/Database 6

[Database] 트랜젝션

트랜잭션이란? 한번 쿼리를 실행하면 모두 수행되거나, 모두 수행되지 않는 작업 수행의 논리적인 단위를 이야기 합니다. 트랜잭션의 4가지 특징이란? 트랜잭션에는 4가지 특징이 있습니다. 이를 앞글자만 따서 ACID라고 부릅니다. acid는 정보처리기사 시험이나 면접에서도 자주 출제되는 중요한 특성이니 꼭 기억해두는 것이 좋습니다. Atomicity(원자성) 어떤 트랜젝션 안의기능들이 모두 수행되거나 모두 수행되지 않아야 합니다. Consistency(일관성) 트랜젝션 발생 전후로 DB의 일관성이 깨지지 않아야 합니다. Isolation(독립성) 각 트랜젝션은 독립적으로 이루어져 서로에게 간섭할 수 없습니다. Durability(지속성) 트랜젝션 발생 후 디비의 변경 사항은 지속적으로 유지되어야 합니다. c..

[Database] RDB(relational database)에서 테이블간의 관계 (1:1, 1:N, N:M)

관계형 데이터베이스는 두 entity끼리 관계를 맺을 수 있기 때문에 이러한 이름을 가지게 되었다. 따라서 rdb를 사용하다 보면 foreign key를 이용하여 테이블 간의 관계를 정의해야 하게 되는데, 이러한 관계에는 아래와 같은 유형이 있다. 1 : 1 (일대일) 1 : N (일대다) N : M (다대다) SNS(Social network service) 어플리케이션의 데이터베이스를 예를 들어보겠다. 사용자는 자신의 정보를 담고 있는 테이블과의 관계만 존재하므로 1 : 1 관계라고 할 수 있다. 반대로 N : M 관계로는 게시글 테이블과 해시태그(#)를 예로들 수 있다. 마지막으로는 게시글 하나에 붙는 여러개의 댓글들을 1 : N 관계라고 볼 수 있다.

[Database] ORM(Object-relational Mapping)이란?

ORM이란? ORM(Object-relational Mapping)이란 OOP 간의 호환되지 않는 데이터를 변환하는 프로그래밍 기법으로 쉽게 말해 객체로 관계형 데이터베이스를 관리하는 기술이다. 대부분의 개발 언어 platform마다 제공되고 있으며, 대표적으로 spring에는 JPA가, node의 sequalize, 또 Django에는 orm이 내장되어있다. 기존 SQL 방식의 문제점 기존의 SQL로 데이터베이스를 관리하던 때의 문제점은 계속되는 반복되는 코드의 문제점이 있었고, SQL을 확인하기 전까지는 Entity를 신뢰할 수 없다는 불편함이 있었다. 또한 SQL의 의존적인 개발을 피할 수 없고, 계층 분할의 어려움이 있었다. ORM을 사용 했을 때의 장점 객체 관계 매핑(Object-relatio..

[Database] SQL - SELECT

SELECT문은 테이블을 구성하는 튜플들 중에서 전체 또는 조건을 만족하는 튜플을 검색하여 주기억장치에 임시 테이블로 구성하는 명령문이다. SELECT문 형식 SELECT [PREDICATE] [테이블명.]속성명[AS 별칭][,[테이블명.]속성명 ...] FROM 테이블명[, 테이블명 ...] [WHERE 조건] [GROUP BY 속성명[, 속성명 ...] [HAVING 조건] [ORDER BY 속성명 [ASC | DESC][, 쏙성명[ASC | DESC] ...]]; SELECT절 PREDICATE : 검색할 튜플을 제한할 목적으로 사용되는 조건 ALL : 모든 튜플들을 검색할 때 사용되며, 기본값이다. DISTINCT : 중복된 튜플을 제거할 때 사용된다. DISTINCTROW : 중복된 튜플을 제거..

[Database] SQL - DDL

DDL (Data Definition Language)의 개념 DDL은 스키마(Schema), 도메인(Domain), 테이블(Table), 뷰(View), 인덱스(Index)를 정의하거나 변경 또는 제거할 때 사용하는 언어이다. DDL로 정의한 내용은 메타데이터(Metadata)가 되며, 시스템 카탈로그(System Catalog)에 저장된다. DDL의 유형 명령문 기능 CREATE 스키마, 도메인, 테이블, 뷰, 인덱스를 정의 ALTER 테이블에 대한 정의를 변경 DROP 스키마, 도메인 테이블, 뷰, 트리거, 인덱스를 제거 CREATE SCHEMA 스키마를 정의하는 명령문이다. 스키마는 하나의 사용자에 속하는 테이블과 기타 구성 요소 등을 그룹 짓기 위한 것이다. 스키마의 식별을 위한 스키마 이름고 ..

[Database] 키의 개념 및 종류

학번 주민등록번호 성명 150021 990806-1234567 홍길동 120022 976017-2345678 신민주 120023 990302-1323234 김형규 150024 940102-1234242 허진옥 180024 991020-2352152 임윤지 학번 과목명 050021 영어 050021 컴퓨터 020022 컴퓨터 020022 수학 020023 미술 020024 음악 020025 수학 키란 DB에서 조건에 만족하는 튜플을 찾거나 순서대로 정렬할 때 기준이 되는 속성을 말한다. 슈퍼키 (Super Key) 슈퍼키는 한 릴레이션 내에 있는 속성들의 집합으로 구성된 키를 말한다. 릴레이션을 구성하는 모든 튜플 중 슈퍼키로 구성된 속성의 집합과 동일한 값은 나타나지 않는다. 슈퍼키는 릴레이션을 구성하는..

반응형