Computer Science/Database

[DB] 데이터베이스 개념노트 7편 - 테이블, 행, 컬럼, 제약조건

데이터베이스 개념노트 7편 - 테이블, 행, 컬럼, 제약조건지난 글에서는 반정규화와 성능에 대해 정리했습니다. 정규화는 데이터 무결성을 높이기 위한 설계 방법이고, 반정규화는 성능 향상을 위해 일부 중복을 허용하는 설계 방법이었습니다.이번 글에서는 SQL 기본 문법으로 넘어가기 전에 반드시 알아야 하는 테이블(Table), 행(Row), 컬럼(Column), 그리고 제약조건(Constraint)에 대해 정리해 보겠습니다.관계형 데이터베이스는 데이터를 테이블 형태로 저장합니다. 따라서 테이블, 행, 컬럼의 구조를 정확히 이해해야 이후 SQL 문법도 쉽게 이해할 수 있습니다.1. 관계형 데이터베이스의 기본 구조관계형 데이터베이스는 데이터를 테이블 형태로 저장합니다. 테이블은 행과 컬럼으로 구성됩니다.회원번호..

[DB] 데이터베이스 개념노트 6편 - 반정규화와 성능

데이터베이스 개념노트 6편 - 반정규화와 성능지난 글에서는 정규화와 이상현상에 대해 정리했습니다. 정규화는 데이터 중복을 줄이고 삽입 이상, 갱신 이상, 삭제 이상을 방지하기 위한 중요한 설계 방법입니다.하지만 실무에서는 정규화만으로는 성능이 부족한 경우가 있습니다. 테이블을 너무 많이 나누면 데이터를 조회할 때 JOIN이 많아지고, 그만큼 SQL 성능이 느려질 수 있습니다.이번 글에서는 SQLD에서 자주 등장하는 개념인 반정규화(Denormalization)와 성능에 대해 정리해 보겠습니다.1. 반정규화란?반정규화란 데이터베이스 성능 향상을 위해 정규화된 데이터 구조를 의도적으로 중복, 통합, 분리하는 설계 방법입니다.반정규화는 조회 성능 향상이나 업무 처리 효율을 위해 데이터 중복을 허용하거나 테이블..

[DB] 데이터베이스 개념노트 5편 - 정규화와 이상현상

데이터베이스 개념노트 5편 - 정규화와 이상현상지난 글에서는 데이터 모델링에서 중요한 식별자와 키의 개념에 대해 정리했습니다.이번 글에서는 SQLD에서 자주 등장하는 핵심 개념인 정규화(Normalization)와 이상현상(Anomaly)에 대해 정리해 보겠습니다.정규화는 처음 공부할 때 조금 어렵게 느껴질 수 있지만, 핵심은 간단합니다. 데이터 중복을 줄이고, 데이터가 이상하게 꼬이는 문제를 방지하기 위해 테이블을 잘 나누는 과정입니다.1. 정규화란?정규화(Normalization)란 데이터의 중복을 최소화하고 데이터의 일관성을 유지하기 위해 테이블을 체계적으로 분해하는 과정입니다.정규화는 데이터 중복과 이상현상을 줄이기 위해 테이블을 올바른 구조로 분해하는 과정이다.하나의 테이블에 너무 많은 정보를 ..

[DB] 데이터베이스 개념노트 4편 - 식별자와 키의 개념

데이터베이스 개념노트 4편 - 식별자와 키의 개념지난 글에서는 데이터 모델링의 기본 요소인 엔터티, 속성, 관계에 대해 정리했습니다.이번 글에서는 SQLD에서 정말 자주 등장하는 식별자(Identifier)와 키(Key)의 개념을 정리해 보겠습니다.식별자와 키는 비슷해 보이지만 관점이 조금 다릅니다. 식별자는 데이터 모델링 관점에서 엔터티의 인스턴스를 구분하는 개념이고, 키는 실제 데이터베이스 테이블에서 행을 구분하거나 관계를 연결하기 위해 사용하는 개념입니다.1. 식별자란?식별자(Identifier)란 하나의 엔터티 안에서 각각의 인스턴스를 구분할 수 있는 속성 또는 속성의 집합입니다.식별자는 엔터티 내의 인스턴스를 유일하게 구분할 수 있는 기준이다.예를 들어 회원 엔터티가 있다고 해보겠습니다. 회원 ..

[DB] 데이터베이스 개념노트 3편 - 엔터티, 속성, 관계

데이터베이스 개념노트 3편 - 엔터티, 속성, 관계지난 글에서는 데이터베이스의 구조를 이해하기 위해 스키마, 인스턴스, 데이터 독립성에 대해 정리했습니다.이번 글에서는 SQLD 1과목 데이터 모델링에서 매우 중요하게 다루는 엔터티(Entity), 속성(Attribute), 관계(Relationship)에 대해 정리해 보겠습니다.이 세 가지는 데이터 모델링의 가장 기본이 되는 개념입니다. 쉽게 말하면 엔터티는 관리해야 할 대상, 속성은 그 대상이 가진 정보, 관계는 대상들 사이의 연결이라고 볼 수 있습니다.1. 데이터 모델링이란?데이터 모델링은 현실 세계의 업무를 데이터베이스 구조로 표현하는 과정입니다.데이터 모델링이란 업무에서 필요한 데이터를 분석하여 엔터티, 속성, 관계로 구조화하는 과정이다.예를 들어..

[DB] 데이터베이스 개념노트 2편 - 스키마, 인스턴스, 데이터 독립성

데이터베이스 개념노트 2편 - 스키마, 인스턴스, 데이터 독립성지난 글에서는 데이터베이스, DBMS, 관계형 데이터베이스, SQL의 기본 개념을 정리했습니다. 이번 글에서는 SQLD 공부에서 자주 등장하는 핵심 개념인 스키마(Schema), 인스턴스(Instance), 데이터 독립성(Data Independence)에 대해 정리해 보겠습니다.처음 보면 용어가 조금 딱딱하게 느껴질 수 있지만, 쉽게 말하면 스키마는 데이터베이스의 설계도, 인스턴스는 현재 저장되어 있는 실제 데이터라고 이해하면 됩니다.1. 스키마란?스키마(Schema)란 데이터베이스의 구조와 제약 조건에 대한 정의입니다. 쉽게 말하면 데이터베이스가 어떤 형태로 만들어져 있는지를 나타내는 설계도입니다.스키마는 데이터베이스에 저장될 데이터의 구..

[DB] 데이터베이스 개념노트 1편 - 데이터베이스란?

데이터베이스 개념노트 1편 - 데이터베이스란?SQLD를 공부하기 전에 가장 먼저 잡아야 할 개념은 바로 데이터베이스(Database)입니다. SQL 문법부터 바로 들어가도 되지만, 데이터베이스가 무엇이고 왜 사용하는지 이해하면 이후에 나오는 테이블, 키, 정규화, 트랜잭션, 조인 개념이 훨씬 쉽게 연결됩니다.1. 데이터베이스란?데이터베이스는 쉽게 말해 데이터를 체계적으로 저장해 둔 공간입니다. 단순히 데이터를 모아둔 것이 아니라, 필요한 데이터를 빠르게 찾고, 수정하고, 삭제하고, 관리할 수 있도록 구조화해 놓은 데이터의 집합입니다.데이터베이스(Database)란 여러 사람이 공유하여 사용할 목적으로 체계적으로 통합하고 관리하는 데이터의 집합이다.예를 들어 쇼핑몰 서비스를 생각해 보면 다음과 같은 데이터..