개발자 기술 면접/데이터베이스7 [DB] PK(Primary Key), FK란? PK(Primary Key, 기본키) PK는 특정 테이블의 각 행을 고유하게 식별하는 Key입니다. 중복된 값을 가질 수 없고 null 값을 허용하지 않기 때문에 데이터의 무결성을 유지하는데 도움이 됩니다. 주로 자동으로 증가하는 숫자나 고유한 식별자로 설정됩니다. FK(ForeignKey, 외래키) FK는 다른 테이블의 PK를 참조하여 두 테이블 간의 관계를 설정하는 Key입니다. FK는 참조하는 테이블의 값이, 참조되는 테이블의 PK 값과 일치하기 때문에 데이터 일관성과 무결성을 유지하는데 도움이 됩니다. [참고] https://velog.io/@kinjoo/DAY4-%EA%B8%B0%EC%88%A0%EB%A9%B4%EC%A0%91 2024. 3. 7. [DB] 데이터베이스 1:1, 1:N, N:M 관계 1:1 관계 1:1 관계란 어느 엔티티 쪽에서 상대 엔티티를 보더라도 반드시 단 하나의 관계를 가지는 것을 말합니다. Ex) 결혼 관계 남자는 한 여자와, 여자는 한 남자와 결혼을 할 수밖에 없습니다. 1:N 관계 1:N 관계란 한 쪽 엔티티가 관계를 맺은 엔티티 쪽의 여러 객체를 가질 수 있는 것을 말합니다. 이 관계는 매우 흔한 방식이며, 실제 DB를 설계할 때 자주 쓰이는 방식입니다. 부모 테이블의 PK를 자식 테이블의 FK로 넣음으로써 1:N 관계를 표현합니다. Ex) 부모와 자식 관계 부모는 자식을 1명, 2명 그 이상도 낳을 수 있습니다. DB에서는 이를 부모가 자식을 소유한다고 표현합니다. → has a 관계 반대로 자식 입장에서는 부모(어머니, 아버지의 한 쌍)를 하나만 가질 수밖에 없습니.. 2024. 1. 1. [DB] 정규화란? 정규화 데이터베이스 설계에서 데이터의 중복을 최소화하기 위해 데이터를 구조화하는 프로세스입니다. 즉, 테이블 상 이상이 있는 관계를 재구성하여 보다 조직된 관계를 생성하는 방법입니다. 2023. 12. 30. [DB] 내부 조인(Inner Join)과 외부 조인(Outer Join)의 차이 내부 조인이란 조인되는 키 값을 기준으로 둘 이상의 테이블에 존재하는 데이터를 조회하는 것입니다. 집합으로 표현하면 교집합이라고 할 수 있습니다. 반면에 외부 조인은 내부 조인과 다르게 두 테이블에서 지정된 쪽의(LEFT or RIGHT) 모든 결과를 보여준 후 반대쪽에 매칭되는 값을 보여줍니다. 외부 조인의 종류로는 LEFT, RIGHT, FULL OUTER JOIN이 있습니다. 2023. 12. 30. [DB] 인덱스란? 인덱스 인덱스는 테이블에 대한 검색 속도를 높여주는 자료 구조를 말합니다. 인덱스는 테이블 내의 1개의 컬럼, 혹은 여러 개의 컬럼을 이용하여 생성될 수 있습니다. 고속의 검색 동작 뿐만 아니라 레코드 접근과 관련하여 효율적인 순서 매김 동작에 대한 기초를 제공합니다. 인덱스 사용의 장단점 장점 테이블 검색과 정렬 속도가 향상됩니다. 이에 따라 시스템의 전반적인 부하를 줄일 수 있습니다. 단점 인덱스를 관리하기 위해 DB의 약 10%에 해당하는 저장공간이 필요합니다. 인덱스를 잘못 사용할 경우 오히려 성능이 저하되는 역효과가 발생할 수 있습니다. → INSERT: 새로운 데이터에 대한 인덱스를 추가. → DELETE: 삭제하는 데이터의 인덱스를 사용하지 않는다는 작업 수행. → UPDATE: 기존의 인덱.. 2023. 12. 30. [DB] RDBMS와 NoSQL의 차이 RDBMS는 정해진 스키마가 존재하고, 데이터 테이블 간의 정보가 서로 관계성을 가지고 있는 것이 특징입니다. 또한 2차원의 행(row) 렬(column)로 테이블을 표현하는 데이터베이스입니다. NoSQL(ex. MongoDB, Redis)은 정해진 스키마가 없다는 것이 RDBMS와의 가장 큰 차이입니다. NoSQL은 정해진 스키마가 없어 데이터 구조 변화가 자유롭고 데이터 분산이 용이합니다. 하지만 데이터 중복이 발생하거나 데이터 변경 시에 연산이 오래 걸린다는 단점이 있습니다. RDBMS(Relational DataBase Management System, 관계형 데이터베이스 관리 시스템) 장점 정해진 스키마에 따라 데이터를 저장해야하므로 명확한 데이터 구조를 보장받을 수 있습니다. 각 테이블 간의 .. 2023. 12. 30. [DB] 트랜잭션이란? 트랜잭션 - 트랜잭션이란 관련된 여러 처리를 하나의 큰 처리로 취급할 경우의 단위입니다. - 즉, 데이터베이스의 상태를 변화시키는 하나의 논리적 기능을 수행하기 위한 작업의 단위 또는 한꺼번에 모두 수행되어야 할 일련의 연산들을 의미합니다. 트랜잭션 속성 → ACID 속성 원자성(Atomicity) 트랜잭션을 구성하는 연산들이 모두 정상적으로 실행되거나 아니면 전혀 실행되지 않아야 한다는 ALL-OR-NOTHING 방식을 의미합니다. 트랜잭션 내의 모든 명령은 반드시 완벽히 수행되어야 하며, 모두가 완벽히 수행되지 않고 어느 하나라도 오류가 발생할 경우 트랜잭션 전부가 취소되어야 합니다. 일관성(Consistency) 트랜잭션이 그 실행을 성공적으로 수행한 후에도 언제나 일관성 있는 데이터베이스 상태로 .. 2023. 12. 28. 이전 1 다음 반응형