Database 12

[Database] PostgreSQL - 권한, 스키마, 상속, 파티셔닝

개요이전 게시글에서는 PostgreSQL 테이블의 기본 사항, 제약 조건을 통한 데이터 무결성 보장 방법, 기존 테이블 구조 수정 방법을 살펴보았습니다. 이번 게시글에서는 데이터베이스 관리 및 설계를 더욱 향상시키는 PostgreSQL의 고급 데이터 정의 기능을 더 깊이 탐구합니다. 여기에는 사용자 접근을 제어하는 권한, 세분화된 접근 제어를 위한 행 수준 보안 정책, 데이터베이스 객체 구성을 위한 스키마, 코드 재사용을 위한 테이블 상속, 대규모 테이블 관리를 위한 파티셔닝, 외부 데이터 소스 접근, 그리고 객체 간의 종속성 추적 등이 포함됩니다. 섹션 1: 권한을 통한 접근 관리데이터베이스 보안의 핵심은 사용자가 수행할 수 있는 작업을 제어하는 것입니다. PostgreSQL은 강력한 권한 시스템을 통..

Database 2025.04.23

[Database] PostgreSQL - Table Management (DDL)

개요이번 게시글에서는 PostgreSQL 데이터베이스 시스템 내에서의 테이블 정의, 제약 조건 및 수정에 대한 포괄적인 기술적 검토를 제공합니다. 테이블의 기본 구조, 기본값 및 생성된 값과 같은 특수 열 속성, 데이터 무결성 유지에 있어 제약 조건의 중요한 역할(표준 및 PostgreSQL 특정 유형 포함), 시스템 열의 특성, 그리고 ALTER TABLE 명령을 사용하여 기존 테이블 구조를 변경하는 다양한 작업에 대해 다룹니다. 섹션 1: 데이터베이스 테이블 기본 사항모든 관계형 데이터베이스의 핵심에는 데이터를 구성하고 저장하는 기본 구조인 테이블이 있습니다. 고급 기능을 살펴보기 전에 테이블의 기본 구성과 목적을 이해하는 것이 필수적입니다. 1.1 테이블 구조: 행과 열PostgreSQL과 같은 관..

Database 2025.04.21

[Database] PostgreSQL - SQL Query

소개PostgreSQL에서 SQL 쿼리를 효과적으로 작성하고 이해하기 위해서는 SQL 구문의 기본적인 개념을 명확히 파악하는 것이 필수적입니다. SQL 구문은 데이터베이스와 소통하는 언어의 문법과 같아서, 이를 정확히 알아야 원하는 데이터를 올바르게 조회하고 조작할 수 있습니다. 이 게시물에서는 PostgreSQL 17.4 공식 문서를 기준으로 SQL 구문의 세 가지 핵심 구성 요소인 어휘 구조(Lexical Structure), 값 표현식(Value Expressions), 그리고 함수 호출(Calling Functions)에 대해 자세히 알아보겠습니다. 1. 어휘 구조 (Lexical Structure): SQL 구문의 기본 단위개요모든 SQL 명령은 토큰(Token) 이라고 불리는 기본적인 구성 요..

Database 2025.04.18

[Database] PostgreSQL - Transaction

이번 시간에는 PostgreSQL 에서 트랜젝션이 어떻게 동작하고 어떠한 특성을 가지고 있는지 알아보겠습니다. 개요트랜잭션은 BEGIN 혹은 START TRANSACTION 을 사용하여 명시적으로 생성하고 COMMIT 혹은 ROLLBACK 을 사용하여 종료할 수 있습니다. 명시적 트랜잭션 외부의  SQL 문은 자동으로 단일 문 트랜잭션을 사용합니다. 모든 트랜잭션은 백엔드 ID와 각 백엔드에 로컬로 순차적으로 할당된 번호, 즉 localXID 로 구성된 고유한 VirtualTransactionId 로 식별됩니다. 예를 들어, 가상 트랜잭션 ID 4/12532 의 백엔드 ID 는 4이고 localXID 는 12532 입니다. PostgreSQL 클러스터 내의 모든 데이터베이스에서 사용하는 글로벌 카운터에서..

Database 2024.07.18

[Database] PostgreSQL - Index

지난 시간에는 PostgreSQL 에 대한 보안 정책에 대해 알아보았습니다. 이번 시간에는 PostgreSQL의 Index 에 대해 알아보겠습니다.개요아래와 비슷한 테이블이 있다고 가정해봅시다.CREATE TABLE test1 ( id integer, content varchar); 그리고 해당 테이블을 사용하는 애플리케이션 쪽에서 다음과 같은 쿼리를 수없이 요청했다고 가정해봅시다.SELECT content FROM test1 WHERE id = constant; 만약 기본적인 세팅만 되어있다면, 시스템은 모든 일치하는 항목을 찾기 위해 test1 테이블 전체를 한 줄씩 스캔해야 할 것입니다. test1 에 행이 많고 그러한 쿼리에 의해 반환되는 행이 몇 개에 불과하다면, 이것은 분명히 비효율..

Database 2024.07.18

[Database] PostgreSQL Commands - DCL

개요지난 시간에는 PostgreSQL 데이터베이스의 DML 에 대해서 알아보았습니다. 이번 시간에는 PostgreSQL의 DCL 및 권한 관리 부분에 대해서 알아보겠습니다.Privileges (권한)데이터 개체가 생성되면 해당 개체에는 소유자가 할당됩니다. 소유자는 일반적으로 생성문을 실행한 역할입니다. 대부분의 개체 종류에 대해 초기 상태는 소유자(혹은 슈퍼 어드민) 만 개체에 대한 모든 권한을 가지고 있습니다. 다른 역할에서 개체를 사용할 수 있도록 하려면 권한이 부여되어야 합니다. SELECT, INSERT, UPDATE, DELETE, TRUNKATE, REFERENCE, TRIGER, CREATE, CONNECT, TERIVE, EXECURE, USE, SET, ALTER SYSTEM 등등 다양..

Database 2024.07.18

[Database] PostgreSQL Commands - DML

개요지난 시간에는 PostgreSQL 데이터베이스의 DDL 에 대해서 알아보았습니다. 이번 시간에는 PostgreSQL의 DML에 대해서 알아보겠습니다.Inserting Data기본적인 문법은 다음과 같습니다.INSERT INTO products VALUES (1, 'Cheese', 9.99); 테이블의 열 순서와 반드시 일치하게 데이터를 작성해야하는 방식이기 때문에 불편할 수 있습니다. 다음과 같이 열 이름을 명시적으로 선언하여 해당 문제를 해소할 수 있습니다.INSERT INTO products (product_no, name, price) VALUES (1, 'Cheese', 9.99);INSERT INTO products (name, price, product_no) VALUES ('Cheese'..

Database 2024.07.17

[Database] PostgreSQL Commands - DDL

개요지난 시간에는 PostgreSQL의 간략한 개요와 특징에 대해서 알아보았습니다. 이번 시간에는 PostgreSQL에서 제공하는 SQL Commands 들을 알아보고 간략하게 실습해보는 시간을 가져보겠습니다.테이블 기초CREATE: 테이블, 인덱스, 뷰, 시퀀스 등과 같은 새로운 데이터베이스 개체를 만드는 데 사용됩니다.// 출처: https://www.postgresql.org/docs/current/sql-createtable.htmlCREATE [ [ GLOBAL | LOCAL ] { TEMPORARY | TEMP } | UNLOGGED ] TABLE [ IF NOT EXISTS ] table_name ( [ { column_name data_type [ STORAGE { PLAIN | EXTE..

Database 2024.07.15

[Database] RDBMS - PostgreSQL

개요이번 시간에는 RDBMS에 대해서 간략하게 알아보고, 그 중에서 PostgreSQL에 대해서 심도있게 파헤쳐보겠습니다.RDBMS란?RDB의 데이터 관리를 위한 다양한 기능을 제공하는 소프트웨어입니다. 다음과 같은 특징을 가지고 있습니다. Software LayerRDBMS 는 데이터베이스와 사용자 혹은 애플리케이션 사이에 존재하는 소프트웨어 입니다. 데이터, 데이터베이스 엔진 및 데이터베이스 스키마를 관리하여 데이터의 구성 및 조작을 용이하게 합니다. Functions and ServicesData Definition: 데이터베이스 구조 (테이블, 인덱스, View) 등을 정의하는 도구를 제공합니다.Data Manipulation: 데이터의 삽입, 업데이트, 삭제 및 쿼리가 가능합니다.Data Con..

Database 2024.07.10

[Database] NoSQL 이란?

NoSQL의 정의NoSQL 이라는 용어는 비관계형 데이터베이스 유형을 가리키며, 이 데이터베이스는 관계형 테이블과는 다른 형식으로 데이터를 저장합니다. 그러나 NoSQL 데이터베이스는 언어마다 관습화된 API, 선언적 구조의 쿼리 언어, 쿼리별 언어를 사용하여 데이터 관리를 할 수 있습니다. 이것이 바로 해당 데이터베이스가 not only SQL 데이터베이스라고 불리는 이유입니다. NoSQL 데이터베이스 사용처높은 확장성과 가용성이 주요 장점인 NoSQL 데이터베이스는 실시간 통신 및 빅 데이터에 주로 사용됩니다.이해 관계자로부터 요청되는, 다양하고 시시각각으로 변하는 요구 사항에 빠르게 적응함으로써 민첩한 개발 패러다임에 자연스럽게 활용되는 이점 때문에 DX 적으로 좋은 경험을 가지고 있습니다. NoS..

Database 2024.07.10