Computer Science/데이터베이스

    트랜잭션과 무결성

    1. 트랜잭션 : 하나의 논리적 기능을 수행하기 위한 작업의 단위. 쉽게 생각해서 쿼리 여러개 묶어서 한 번에 실행하는 걸로 생각하면 편하다. 2. 트랜잭션의 특징 원자성(atomicity) - 트랜잭션 관련 수행은 모두 실행되거나 모두 실행되지 않아야 한다.(커밋/롤백, 무결성 보장) - 트랜잭션 단위로 여러 로직들을 묶을 때 외부 API를 호출하는 것이 있으면 안된다. - 여러 트랜잭션 관련 메소드의 호출을 하나의 트랜잭션에 묶이도록하는 것이 트랜잭션 전파다.(ex : Spring @Transactional 애너테이션) 일관성(consistency) - 허용된 방식으로만 데이터를 변경해야 하는 것 - 트랜잭션 전후로 데이터베이스의 상태가 이전과 같이 유효해야 하는 것 격리성(isolation) - 한..

    ERD와 정규화

    1. ERD(Entity Relationship Diagram) : DB를 구축할 때 가장 기초적인 뼈대 역할을 하며, 릴레이션간의 관계들을 정의한 것이다. 2. ERD의 중요성 : ERD는 시스템 요구사항을 기반으로 작성되며, DB는 ERD를 기반으로 구축된다. 또한 DB 구축 이후에도 디버깅 또는 비즈니스 프로세스 재설계가 필요한 경우에 설계도 역할을 담당하기도 한다. 관계형 구조로 표현할 수 있는 데이터를 구성하는 데 유용할 수 있지만 비정형 데이터를 충분히 표현 할수는 없다. 3. 정규화 : 릴레이션 간의 잘못된 종속관계로 인해 데이터베이스 이상현상이 일어나서 이를 해결하거나, 저장공간을 효율적으로 사용하기 위해 릴레이션을 여러 개로 무손실 분해하는 과정(삽입,삭제,갱신 이상) 4. 반정규화 : ..

    데이터베이스의 기본

    1. 데이터베이스(DataBase) : 일정한 규칙, 혹은 규약을 통해 구조화되어 저장되는 데이터의 모음. 데이터베이스를 제어, 관리하는 통합시스템을 DBMS라고한다. 각 DBMS마다 정의된 쿼리 언어로 데이터들에 대한 CRUD등을 수행 할 수 있다. 2. 엔터티(Entity) : 사람, 장소, 물건, 사건, 개념 등 여러개의 속성을 지닌 명사를 의미. A가 B의 존재여부에 종속적이라면 A는 약한 엔터티, B는 강한 엔터티라고 할 수 있다. 3. 릴레이션(Relation) : DB에서 정보를 구분하여 저장하는 기본 단위이다. 엔터티에 관한 데이터를 릴레이션하나에 담아 관리. RDBMS에서는 테이블이라고 불리고, NoSQL DB에선 컬렉션이라 불린다. 4. 관계형, 비관계형데이터 베이스 종류 특징 예시 관..