DataBase 7

[SQLD] 트랜잭션

트랜잭션   트랜잭션데이터베이스에서 하나의 논리적 작업 단위를 의미여러 개의 작업이 하나의 트랜잭션으로 묶여, 모두 성공하거나 모두 실패하도록 보장함이를 통해 데이터의 무결성과 일관성을 유지할 수 있다  트랜잭션의 4가지 특성(ACID)Atomicity(원자성)트랜잭션 내의 모든 작업이 '완전히 수행'되거나, '전혀 수행되지 않아야' 한다Consistency(일관성)트랜잭션이 완료된 후, 데이터베이스는 항상 일관된 상태를 유지해야한다즉, 트랜잭션 실행 전 데이터베이스에 문제가 없었다면, 실행 후에도 문제가 없어야 한다Isolation(격리성)트랜잭션은 독립적으로 수행되어야 한다따라서 동시에 실행되는 트랜잭션들은 서로의 작업에 영향을 주지 않아야 한다Durability(지속성)트랜잭션이 성공적으로 완료되면..

DataBase 15:04:01

[SQLD] 식별자

식별자  식별자엔터티 내의 각 인스턴스를 고유하게 구분하기 위한 속성, 혹은 속성들의 집합을 의미식별자를 통해 데이터의 무결성과 효율적인 관리를 보장할 수 있다비식별자인스턴스를 식별하는데 사용되지 않는 속성으로, 인스턴스를 유일하게 식별하는데 영향을 미치지 않는다예를들어 '이름', '닉네임', '성별' 처럼 중복될 수 있는 속성은 인스턴스를 식별할 수 없기에 비식별자이다  주식별자의 주요 특징유일성주식별자에 의해 엔터티 내 모든 인스턴스가 유일하게 구분되어야 한다최소성주식별자를 구성하는 속성의 수는, 유일성을 만족하는 최소한의 수로 구성되어야 한다불변성주식별자가 한번 특정 엔터티에 지정되면, 그 식별자의 값은 변하지 않아야 한다존재성주식별자의 값은 반드시 존재해야 하며, NULL 값을 가질 수 없다  식..

DataBase 2025.02.13

[SQLD] 데이터모델링의 관계

관계   관계두 엔터티 간의 논리적인 연관성을 의미엔터티의 인스턴스들이 서로 어떻게 연관되어 있는지를 나타낸다  관계의 개념적 분류존재에 의한 관계한 엔터티가 다른 엔터티에 속하거나 포함되는 등, 존재 자체로 형성되는 관계ex) 학생 - 학과: '소속된다'라는 관계는 학생이 학과에 속하는 존재적 관계임행위에 의한 관계엔터티 간의 상호작용이나 행위를 통해 형성되는 관계ex) 고객 - 상품: '주문한다'라는 관계는 고객이 상품을 주문하는 행위에 의해 형성되는 관계임  ERD에서의 관계ERD에서는 '존재에 의한 관계'와 '행위에 의한 관계'를 구분짓지 않고 동일한 표기법을 사용한다(단일화된 방식) ERD에서 관계 표기법관계명두 엔터티 간의 관계를 나타내는 '동사(Verb)' 형태의 이름관계 차수1:1, 1:N..

DataBase 2025.02.11

[SQLD] 함수 종속성, 정규화, 반정규화

함수 종속성 (Functional Dependency)   함수 종속성(Functional Dependency)특정 속성이 다른 속성을 결정하는 관계를 의미X -> Y == X가 Y를 함수적으로 결정 == X의 값이 정해지면 Y의 값이 항상 고유하게 결정된다잘못 설계된 함수 종속성을 정규화를 통해 제거하면 데이터 무결성 보장, 중복 제거, 저장 공간 절약, 성능 개선 등의 이점이 있다ex) '사원' 테이블 == '사원번호' -> '이름' 의 함수 종속성이 존재: '사원번호'가 정해지면 그에 해당하는 고유한 '이름'이 정해지지만, '이름'은 여러 개가 존재할 수 있으므로 이에 대응하는 '사원번호'가 유일하지 않을 수 있기 때문  함수 종속성의 유형완전 함수 종속 (Full Functional Depende..

DataBase 2025.02.11

[SQLD] 엔터티, 속성, NULL 속성

Entity(엔터티)   엔터티업무에 필요하고 유용한 정보를 저장하고 관리하기 위한 집합적인 것업무 활동상 지속적인 관심을 가지고 있어야 하는 대상으로, 그 대상들 간에 동질성을 지닌 인스턴스들이나 그들이 행하는 행위의 집합1976년 '피터 첸'에 의해 Entity-Relationship Model이라는 표기법이 만들어짐  엔터티 조건반드시 해당 업무에서 필요하고 관리하고자 하는 정보여야 한다유일한 식별자와 유일한 이름을 가져야 한다두 개 이상의 영속성 인스턴스의 집합이어야 한다(싱글톤 제외)두 개 이상의 속성(attribute)을 가져야 한다다른 엔터티와 최소 한 개 이상의 관계를 가져야 한다엔터티는 업무 프로세스에 의해 이용되어야 한다  엔터티의 발생 시점에 따른 분류기본 엔터티(Fundamental..

DataBase 2025.02.05

[SQLD] 데이터 모델링, 데이터 독립성, 스키마

데이터 모델링   데이터 모델링정보시스템을 구축하기 위한 데이터 관점의 업무 분석 기법으로, 시스템 구현'만'을 위해 수행하는 테스크가 아니다현실 세계의 데이터를 약속된 표기법으로 표현하는 과정데이터베이스를 구축하기 위한 분석 및 설계의 과정데이터 모델링 자체로도 업무를 설명하고 분석할 수 있어야 한다 데이터 모델링 유의점중복데이터베이스가 여러 장소에 같은 정보를 저장하는 잘못을 하지 않도록 한다비유연성'데이터의 정의'를 '데이터의 사용 프로세스'와 분리이를 통해 '데이터나 프로세스의 작은 변화'가 '애플리케이션과 데이터베이스'에 중대한 변화를 일으킬 수 있는 가능성을 줄인다 비일관성데이터간의 연관된 정보가 있는데 이를 무시하고 데이터가 갱신되는 경우를 말한다데이터의 중복이 없더라도 비일관성은 발생할 수..

DataBase 2025.02.05

[Real MySQL 8.0] RDBMS중 왜 MySQL을 선택했는가?

RDBMS를 선택하기 위한 기준은 다음 순서대로 생각해보면 좋다안정성성능과 기능커뮤니티나 인지도여기서 추가적으로 비용까지 고려해서 비교해보자.비교할 RDBMS들은 'DB-Engines'의 랭킹 1위부터 4위까지중, windows 플랫폼에 최적화된 'Microsoft SQL Server'를 제외하고 'Oracle', 'MySQL', 'PostgreSQL'만으로 비교해보겠다.      비교 1. 안정성 - ACID 준수 여부 -> ACID를 준수하는가?Oracle: ACID를 완벽하게 준수PostgreSQL: ACID를 완벽하게 준수MySQL: InnoDB 엔진 사용시 ACID를 준수하지만, 기본 설정에서는 읽기 일관성(Read Consistency)를 보장하지 않기에, 별도 설정이 필요하다- 장애 발생 시..

DataBase 2025.01.24