전체 글 62

[TIL] 논리적 모델링

논리적 모델링 정의 (Logical Modeling)개념 모델을 실제 데이터베이스에 맞게 구조화한다.목표 : 컬럼과 데이터 타입을 정의하고, 정규화를 수행한다.산출물: 각종 제약 조건이 정의되고 정규화가 끝난 ERD ERD (Entity-Relationship Diagram) — 논리적 모델링 단계PK(기본키): 행을 고유 식별. 여러 컬럼을 묶은 복합키, 또는 시스템이 부여하는 대리키로 구성 가능FK(외래키): 다른 테이블의 PK를 참조해 테이블 간 관계를 표현정규화: 데이터 중복/이상 현상을 줄이기 위해 컬럼을 여러 테이블로 분리

[TIL] 개념적 모델링 ERD

개념적 모델링 정의현실 세계의 개체(Entity)와 관계(Relationship)를 모델로 표현한 단계 목표 : 무엇이 존재하고 서로 어떻게 연결되는지를 시각화한다.ERD(Entity-Relationship Diagram) 산출 ERD (Entity-Relationship Diagram) 개체(Entity) 간의 관계를 도식화한 다이어그램개념적 모델링 단계에서는 각 개체의 내부 속성(컬럼)은 정의하지 않고, 개체 간의 관계만 표현한다관계 표시 시 다중성(Cardinality)을 표기한다: 1(단수) 대 N(복수) 관계인지 명확히 한다 (예: 회원 1명 : 주문 여러 건)관계가 필수(Mandatory)인지 선택(Optional)인지도 함께 표기한다 (예: 주문은 반드시 회원이 있어야 하는가?)

[TIL] DB 트랜잭션 개념

트랜젝션에 대한 기본적인 원리에 대해서만 설명하고 JAVA와 관련된 기법들(전파, 예외처리 등등)은 JDBC를 진행할 때 정리트랜잭션이란하나의 논리적인 작업단위를 의미해서 이 단위 내의 작업이 모두 성공 하거나 모두 실패해야하는 작업의 집합전통적으로 관계형 데이터베이스의 핵심 특징이며, 최근에는 일부 NoSQL도 제한적으로 트랜잭션을 지원한다 트랜잭션의을 제어하기 위한 조건 (자세한건 이전 포스팅 확인)트랜잭션이 논리적 작업 단위로서 안전하게 수행되려면 ACID(원자성, 일관성, 격리성, 지속성)를 만족해야 한다. 이 중 격리성(Isolation)은 여러 트랜잭션이 동시에 실행돼도 서로 간섭받지 않아야 한다는 원칙이며, 이를 얼마나 엄격하게 지킬지는 Isolation Level(L0~L3)로 설정한다. ..

[TIL] 데이터베이스 트랜잭션 격리레벨(Isolation Lavel)

트랜잭션 내에서 사용되는 격리레벨 4가지Pessimistic Lock을 통해 동시성을 처리할 때 모든 쿼리에 트랜잭션 Lock을 걸어버리면 일관성은 매우 훌륭하지만 대기 시간이 길어져 불편할 수 있다. 이때 상황에 따라 격리 수준을 조절할 수 있게 해주는 것이 Isolation Level이며, 이번 글에서 이를 알아본다.용어 정리Commit : 변경된 데이터를 디스크에 저장하여 데이터베이스에 확정 적용하는 것Rollback : 트랜잭션 중 발생한 변경사항을 취소하고, 이전 상태로 되돌리는 것 Isolation Lavel 4가지L0 : Read Uncommitted 가장 느슨한 격리 레벨로, 읽기 성능이 데이터 정확성보다 중요할 때 사용한다.커밋되지 않은(아직 확정 안 된) 데이터까지 읽을 수 있어서 Di..

[TIL] 데이터베이스 동시성 제어 (Concurrency Control)

Race Condition서버는 데이터를 저장하기 위해 데이터베이스를 필수적으로 사용한다. 서버는 수많은 트래픽을 받아내야 하므로 다중의 서버가 존재할 것이고, 이 서버들은 결국 1개의 데이터베이스에 동시에 접근하게 된다. 그럼 데이터베이스는 필연적으로 여러 서버가 동시에 같은 데이터에 접근하려는 상황, 즉 Race Condition(경쟁 상태)에 놓이게 된다. 이를 해결하기 위한 데이터베이스 기술을 동시성 제어(Concurrency Control)라고 하며, 이번 글에서는 이에 대해 알아본다. Concurrency Control 동시성 제어의 핵심 : Locking MechanismLocking 제어 메커니즘은 2개 카테고리로 나뉜다Pessimistic Lock : 선락 체크 → 후작업Optimisti..

[TIL] 데이터 베이스의 확장

분산 시스템 이론에 대해 정리NoSQL(비관계형 데이터베이스)은 애초에 분산 환경에서 쉽게 확장할 수 있도록 설계되었고, RDBMS(관계형 데이터베이스)도 트래픽 증가에 따라 서버 수를 확장할 필요가 있다. 이번 글에서는 이때 어떤 방식으로 분산 시스템을 구성하는지 알아본다. 분산 시스템 이론 (CAP 이론)이 분산 시스템은 어떤 분산 시스템입니까 → 무조건, Partition Tolerance(분할내성)이 있어야 함 (노드 간 연결이 끊기더라도 전체가 망가지지 않음) 1. Partitioning하나의 테이블을 여러 데이터로 쪼개어서 저장하는 것을 의미한다.분할 종류Vertical Partitioning : 칼럼(열) 쪼개기Horizontal Partitioning (Sharding) : 로우(행) 쪼..

[TIL] SQL의 표준

SQL이란 SQL(Structured Query Language)로 관계형 데이터베이스(RDB)에서 데이터를 정의하고 조작하며 제어할 수 있도록 설계된 선언형(Declarative) 언어이다. ANSI(미국표준협회), ISO(국제표준화기구)에 의해 국제 표준으로 제정되어 있어 관계형 데이터베이스 관리시스템(RDBMS)은 대부분 SQL을 기반으로 동작한다. SQL의 목적 그리고 역할데이터를 정형화된 구조로 관리한다.사용자가 무엇을 하고 싶은지 선언적으로 표현한다. (절차는 DBMS가 처리함)프로그래밍 언어와 결합되어 다양한 애플리케이션에서 데이터가 접근이 가능하다.한 줄 요약을 해본다면 데이터를 접근하여 관리하기 위한 선언적 표현 어라고 요약할 수 있을 것 같다. SQL 특징표준화된 언어 제공 단, 우리나..

[TIL] 내가 알고있는 DB는 DB가 아니였다!

평소에 말하던 DB는 DB가 아니다?완전히 맞는말도 아니고 틀린말도 아님 왜냐면 나에게 DB란 MySQL, PostgreSQL 이런걸 의미했는데 이번 수업을 통해 정확히 알게 된 사실은 DB는 데이터 그 자체이고 데이터에 대한 쿼리 수행, 계정관리 등등을 담당하는것은 DBMS이다. 즉 내가 매번 말하던 MySQL, PostgreSQL은 벤더사에 의해 만들어진 DBMS라는 것 그럼 이제 이번 글에서는 DMBS에 대해 조금 자세히 알아보고 편의를 위해 DB라고 지칭하겠다! DBMS란 무엇일까?데이터를 관리하는 소프트웨어라고 할 수 있는데, DB에 대한 관리, 쿼리수행(엔진)을 제공해준다.벤더사 마다 다른 DBMS를 만들었고 그걸 우리가 사용하고있음! (MySQL, PostgreSQL 등등..) 데이터베이스가..

[위클리페이퍼] 26.08.31 데이터베이스 설계와 Spring Data JPA

Q. SQL에서 DDL과 DML의 차이점을 설명하고, 각각의 대표적인 명령어들의 용도를 설명하세요. A. DDL은 테이블을 관리하는 명령어고, DML은 테이블 내의 데이터를 관리하는 명령어이다. DDLCREATE : 테이블을 생성DROP : 테이블 삭제 ALTER : 테이블 내 컬럼추가, 제약조건 추가 등등TRUNCATE : 테이블의 모든 데이터 삭제 (구조는 유지, DROP처럼 테이블 자체를 없애진 않음)RENAME : 테이블/컬럼 이름 변경DMLSELECT : 데이터 조회 DELETE : 데이터 삭제UPDATE : 데이터 수정해설 Q. 역정규화가 필요한 상황과 적용 시 고려해야 할 사항, 그리고 역정규화를 적용할 때의 장단점을 설명해 주세요. A. 역정규화는 정규화된 데이터 모델의 성능을 향상하기 ..

[위클리페이퍼] 26.08.24 RESTful APIs 구현하기

Q. 웹 API의 발전 과정에서 SOAP에서 REST로의 전환이 일어난 이유와 그 장단점에 대해 설명하세요. A. 답변 SOAP(Simple Object Access Protocl)XML 기반의 프로토콜로 데이터의 교환을 위한 규칙과 형식을 정의장점 모든 전송 프로토콜과 함께 사용하기 적합HTTP 프로토콜, SMTP 등도 사용 가능XML 네임 스페이스를 통한 쉬운 국제화 및 확장성 포함 ( XML의 모든 기능을 사용가능)엄격한 표준 준수로 높은 신뢰성을 갖고있음단점XML 기반으로 인해 메시지 크기가 크다.이름에 비해 간단하지않음 (개발 복잡도, 처리비용 증가)모바일 환경에 부적합Rest(Representational State Transfer)HTTP를 기반으로 한 아키텍쳐 스타일로 경량화 된 데이터 교..

반응형