본문 바로가기

ComputerScience/Database

(19)
[Database] 1. SELECT를 활용한 데이터 조회하기 SQL SELECT 쿼리문을 사용하여 데이터 조회하는 방법 SQL에서 데이터 조회를 위해 SELECT 키워드를 사용한다. 관심 있는 컬럼들을 SELECT에서 명시하고, 조회할 테이블을 FROM에서 명시한다. 조건이 있는 경우 WHERE 키워드를 사용하여 조건을 명시한다. 조건에 맞는 튜플이 선택되어 결과로 반환된다.위 쿼리는 customers 테이블에서 name, email, phone_number를 조회한다.이 쿼리는 city가 'New York'에 해당하는 모든 tuple들을 가져온다. SELECT * FROM customers WHERE city = 'New York'; SELECT name, email, phone_number FROM customers; 별칭을 사용하여 SQL 문을 간결하게 작성..
[Database] SQL로 DB에 데이터를 추가(insert)하고 수정(update)하고 삭제(delete)하는 방법 SQL을 사용해서 데이터 추가하기 데이터를 추가할 때는 INSERT INTO 키워드를 사용하고, 그 뒤에 테이블 이름과 VALUES 값을 적어준다. INSERT INTO employees (name, department, salary) VALUES ('김철수', '영업', 3000000); 값들을 써줄 때 Attribute 순서에 맞게 값을 채워 넣어야 하는데, 이때 NULL값을 넣어야 하는 Attribute가 있다면 일단 NULL값을 넣어 넘겨야 한다. Query가 성공적으로 동작하면 해당 테이블에 데이터가 추가된다. ️️Primary키가 중복되는 경우 Primary key는 유일한 값이며 중복되면 안 된다. 이미 존재하는 Primary Key에 중복해서 데이터를 Insert하려 할 때 발생하는 에러..
[Database] SQL의 개념과 SQL로 데이터베이스를 정의하는 법(table 생성하기, 각종 데이터 타입, constraints, 키(key)들을 활용) SQL의 기본 개념과 구조, RDBMS의 SQL 스펙 SQL은 Relational Database Management System에서 사용되는 표준 언어로, 데이터베이스를 정리하고 데이터를 조작하고 조회하는 등 종합적인 데이터베이스 작업이 가능하다. SQL에서 Table은 데이터 모델에서 Relation을 나타내며, attribute는 column, tuple은 row, domain은 domain으로 표현한다. SQL에서 Relation은 multiset of tuples로, 중복된 tuple을 허용한다. MySQL은 InnoDB를 기준으로 가장 많이 사용되는 RDBMS이다. 데이터베이스를 생성하고 사용할 때는 'create database' 명령어를 사용하여 새로운 데이터베이스를 만들고,..
[Database] functional dependency(함수 종속) 이란? 데이터베이스 설계를 위한 functional dependency (함수 종속) 개관 functional dependency란, 테이블에 있는 어트리뷰트 집합 사이의 제약을 의미하며, 이를 통해 데이터베이스 설계의 기본이 된다. 집합 X와 Y를 나눈 후, X의 값이 같으면 Y의 값도 같다는 걸 알 수 있으며, 이 경우 X가 Y를 함수적으로 결정한다. 이 경우 functional dependency(FD)라 부르며 Symbol로는 X -> Y와 같이 표현할 수 있다. 테이블의 스키마를 보고 FD를 파악할 수 있지만, 테이블의 State를 보고 FD를 파악하면 안 된다. 위 테이블에서, 집합 X를 {Student_ID}, 집합 Y를 {Student_Name, Stream}라 했을때 집합 X인 Student_I..
[Database] Transaction Transaction Transaction 은 여러 SQL문들을 논리적 단위로 묶어 하나의 작업 단위로 처리하는 것이다. Transaction 내의 SQL문 중 일부만 성공한 경우에도 DB에 반영되지 않고 모두 성공해야만 DB에 반영된다. 예를 들어, J가 H에게 20만원을 이체할 때, 계좌 변동은 J의 계좌에서 20만원이 제거되고, H의 계좌에 20만원이 추가되어 최종적으로 J는 80만원, H는 220만원이 된다. 이러한 계좌 변동 내용은 SQL 문으로 표현할 때 Balance 테이블을 업데이트하여 잔액을 반영하는 방식으로 처리한다. 하나의 Transaction 내에서 SQL문이 실패하면 이전 상태로 되돌린다. 따라서 중복작업을 방지할 수 있으며 데이터 일관성을 유지할 수 있다. 아래는 Transact..
[Database] 데이터베이스의 기본 개념 (DB, DBMS, Schema) ️데이터베이스와 DBMS에 대한 기본 개념 이해데이터베이스는 전자적으로 저장되고 사용되는 관련있는 데이터의 집합으로, 예를 들면 소셜네트워크 서비스에서 생성되는 데이터들을 말한다.데이터베이스는 관련있는 데이터들을 조직화된 집합으로 묶어야 한다.검색 및 사용의 효율성을 위해 데이터베이스는 잘 조직화되어야 하며, 중복된 데이터와 데이터의 불일치를 방지할 수 있다.DBMS는 사용자에게 데이터베이스를 정의, 생성 및 관리할 수 있는 기능을 제공하는 소프트웨어 시스템이다.DBMS의 대표적인 종류에는 Postgre SQL, MySQL, Oracle, SQL Server 등이 있다.DBMS, metadata, 데이터베이스 시스템 DBMS는 사용자가 데이터베이스를 정의하고 만들고 관리하는 소프트웨어 시스템이다.meta..
[Database] Index가 무엇인지 설명해보세요. Index 책에서 인덱스는 일반적으로 책의 끝에 위치하며, 키워드나 용어를 알파벳 순으로 나열하고 그 용어가 책에서 어디에서 논의되었는지에 대한 페이지 번호를 함께 제공합니다. 이는 독자들이 특정 정보를 빠르게 찾을 수 있도록 도와줍니다. 책의 인덱스가 특정 주제나 키워드에 대한 정보를 빠르게 찾는데 도움이 되는 것처럼, Index(인덱스)는 데이터베이스 엔진이 테이블 내의 특정 데이터를 더 빠르게 찾는데 도움을 줍니다. 이는 데이터베이스에서 쿼리 성능을 향상시키는데 효과적입니다. (특히 읽기 쿼리) 인덱스가 걸려있지 않은 테이블에서 특정 튜플을 찾을때는 full scan을 수행하여 O(N)의 시간이 소요될 수 있지만, 인덱스가 걸려있는 테이블에서 특정 튜플을 찾을때는 B-Tree 기반 인덱스의 경우 O..
[Database] ACID, BASE 원칙 ACID ACID는 데이터베이스 트랜잭션에서 보장해야 하는 네 가지 주요 속성을 나타내는 약어 트랜잭션은 데이터베이스에서 하나의 작업 단위를 말함. (자세한 내용은 여기에) 원자성(Atomicity) 트랜잭션 내의 모든 작업이 완료되거나, 아니면 전혀 실행되지 않아야 함을 의미 즉, 트랜잭션은 모두 성공하거나 실패. 중간에 하나라도 SQL문이 실패하면 지금까지의 작업을 모두 취소하여 Rollback 수행 이 속성은 부분적으로 완료된 트랜잭션이 데이터베이스를 일관성 없게 만드는 것을 방지 DBMS는 트랜잭션 내의 모든 연산이 완전히 수행되거나, 또는 전혀 수행되지 않도록 보장 개발자는 언제 Commit하고, 언제 rollback 할지를 정하는 책임이 있음. 일관성(Consistency) 트랜잭션이 성공적으..