DB 33

[DB] 데이터베이스 정규화(DB Normalization) 개념과 장단점

데이터베이스 정규화에서 중요한 배경이 될 이상현상에 대해서는 아래 글을 참고 바랍니다. 2024.02.01 - [DB/SQL - Oracle] - [SQL] 이상현상(Anomaly) + 키 예제 [SQL] 이상현상(Anomaly) + 키 예제 이번에는 예제를 통해 키에 대해 좀 더 상세히 알아보고, 이상현상에 대해 자세히 다뤄보고자 한다. * 이전에 키에 대해 정리한 글은 아래 링크를 확인해주세요. https://bio-logisch.tistory.com/14 [SQL] bio-logisch.tistory.com 데이터베이스 정규화(DB Normalization)는 관계형 데이터 모델에서 데이터의 중복성을 제거하여 이상 현상*을 방지하고, 데이터의 일관성과 정확성을 유지하기 위해 "무손실 분해"하는 과정..

DB/Data modeling 2024.02.06

[SQL] where 조건절 - Like(패턴) 방식 파헤치기 + 정규 표현식

select문으로 데이터 조회 시 특히 특정 문자열을 포함한 값을 찾고자 할 때 Like를 자주 활용하게 된다. 예를 들어 거주지 주소를 입력하는 address 컬럼명의 값은 서울시, 서울특별시, 수원시, 경기도 수원시, 등등 같은 지역을 의미함에도 다른 값으로 저장된 경우가 있는데 이런 모든 경우를 포괄하면서 최대한 누락되지 않도록 조회를 하기 위해서 Like가 매우 유용하게 쓰일 수 있다. 예시) 컬럼이 address인 경우, 입력값에서 '서울'로 시작되는 문자열인 튜플만 조회 SELECT * FROM member WHERE address LIKE '서울%'; 또한 웹 서비스 중 검색 기능을 구현하고자 할 때 사용자가 검색창에 입력한 검색어를 기준으로, 해당 키워드가 포함된 게시글의 제목이나 내용을 ..

DB/SQL - Oracle 2024.02.03

[SQL] DML(데이터 조작어) - select *연산자, where조건문 활용 예제*

SQL 종류 1. 데이터를 정의하는 쿼리 - DDL(데이터 정의어) : create, drop, alter, truncate 2. 데이터를 조작하는 쿼리 - DML(데이터 조작어) : insert, select, update, delete 3. 데이터를 제어하는 쿼리 - DCL(데이터 제어어) : grant, revoke 4. 트랜잭션 제어하는 쿼리 - TCL(트랜잭션 제어어) : commit, rollback, checkpoint select문에 대해서 기본적인 부분은 아래 글을 참고해주세요! https://bio-logisch.tistory.com/19 [SQL] SQL의 종류(4) - DML(데이터 조작어) - select 1. 데이터(테이블, 시퀀스, 뷰)를 정의하는 쿼리 - DDL(데이터 정의어..

DB/SQL - Oracle 2024.02.02

[SQL] DDL(데이터 정의어) - alter

SQL 종류 1. 데이터를 정의하는 쿼리 - DDL(데이터 정의어) : create, drop, alter, truncate 2. 데이터를 조작하는 쿼리 - DML(데이터 조작어) : insert, select, update, delete 3. 데이터를 제어하는 쿼리 - DCL(데이터 제어어) : grant, revoke 4. 트랜잭션 제어하는 쿼리 - TCL(트랜잭션 제어어) : commit, rollback, checkpoint 데이터 조작 명령어 : alter alter는 이미 테이블을 생성한 후에 값이 아니라 설정(속성, 명칭)과 관련된 부분을 새롭게 정의(추가, 수정, 삭제)할 때 사용한다. 테이블, 컬럼, 제약조건의 이름이나 특정 컬럼의 속성을 변경, 새로운 컬럼을 추가, 특정 컬럼을 삭제할 ..

DB/SQL - Oracle 2024.02.02

[SQL] DML(데이터 조작어) - select

SQL 종류 1. 데이터를 정의하는 쿼리 - DDL(데이터 정의어) : create, drop, alter, truncate 2. 데이터를 조작하는 쿼리 - DML(데이터 조작어) : insert, select, update, delete 3. 데이터를 제어하는 쿼리 - DCL(데이터 제어어) : grant, revoke 4. 트랜잭션 제어하는 쿼리 - TCL(트랜잭션 제어어) : commit, rollback, checkpoint 튜플 조회 명령어 : select select은 테이블에서 특정한 혹은 전체 튜플을 조회할 때 사용한다. select * from member; - member 테이블의 모든 튜플 조회 특정 튜플을 조회할 때는 구체적으로 어떤 튜플을 조회할 지 지정해줘야 하므로 입력할 내용이..

DB/SQL - Oracle 2024.02.02

[SQL] TCL(트랜잭션 제어어) - commit, rollback, checkpoint(=savepoint)

SQL 종류 1. 데이터를 정의하는 쿼리 - DDL(데이터 정의어) : create, drop, alter, truncate 2. 데이터를 조작하는 쿼리 - DML(데이터 조작어) : insert, select, update, delete 3. 데이터를 제어하는 쿼리 - DCL(데이터 제어어) : grant, revoke 4. 트랜잭션 제어하는 쿼리 - TCL(트랜잭션 제어어) : commit, rollback, checkpoint ​ 데이터 조작 후에는 트랜잭션 처리*를 위해 반드시 commit이나 rollback을 해야 한다. TCL ? : 트랜잭션 제어어(Transaction Control Language) 트랜잭션을 제어한다는 것은 트랜잭션의 결과를 수용하거나 취소하는 것을 말한다. (비교적 자주..

DB/SQL - Oracle 2024.02.02

[SQL] DML(데이터 조작어) - insert, update, delete

SQL을 접하게 되면 흔히 듣는 단어가 있다. 바로 'CRUD'이다! (다소 짧은 인트로.. 하지만 개발을 하게 되면 정말 자주 쓰게 되는 용어이다. 자주 쓴다는 건 그만큼 중요하다는 의미일 것이다.) 여기서 CRUD 란, Create Read Update Delete 의 앞글자를 조합한 단어이다. 클라이언트가 요청한 대로 데이터를 생성, 조회, 수정, 삭제하는 것을 말한다. 오늘은 그 중에서도 CRUD와 밀접한 관련이 있는 데이터 조작어(DML)에 대해 다뤄보겠다. select의 경우는 다룰 내용이 좀 더 있어서 다른 글에 정리해보려 한다. SQL 종류 1. 데이터를 정의하는 쿼리 - DDL(데이터 정의어) : create, drop, alter, truncate 2. 데이터를 조작하는 쿼리 - DML..

DB/SQL - Oracle 2024.02.02

[SQL] DDL(데이터 정의어) - create, drop

오늘은 데이터 정의어(DDL)를 살펴보고 create 의 예로 테이블 생성에 대해, drop의 예로 테이블 삭제에 대한 예시와 함께 익혀보고자 한다. *** 참고로 SQL Developer에서 작업을 한다면 명령어를 실행할 때는 해당 명령어 뒤에 ;를 붙이고 그 라인에 마우스 커서를 둔 상태에서 Ctrl+Enter를 입력한다. SQL 종류 1. 데이터를 정의하는 쿼리 - DDL(데이터 정의어) : create, drop, alter, truncate 2. 데이터를 조작하는 쿼리 - DML(데이터 조작어) : insert, select, update, delete 3. 데이터를 제어하는 쿼리 - DCL(데이터 제어어) : grant, revoke 4. 트랜잭션 제어하는 쿼리 - TCL(트랜잭션 제어어) :..

DB/SQL - Oracle 2024.02.02

[SQL] 이상현상(Anomaly) + 키 예제

이번에는 예제를 통해 키에 대해 좀 더 상세히 알아보고, 이상현상에 대해 자세히 다뤄보고자 한다. * 이전에 키에 대해 정리한 글은 아래 링크를 확인해주세요. https://bio-logisch.tistory.com/14 [SQL] 데이터베이스 제약조건 "키" - 기본키, 외래키, 슈퍼키, 후보키, 대체키 키에 대해 이해하려면 먼저 유일성과 최소성이라는 단어를 이해해야 한다. 유일성은 중복값 없이 단 하나만 존재한다는 의미이다. 하나의 키값만으로도 하나의 튜플을 식별할 수 있어야 한다. bio-logisch.tistory.com 예제 1 ​- 키의 조합 : ​아이디, 이름, 비밀번호, 나이, 등급, 가입날짜 모두 가능하다. (키의 조합은 각 컬럼 하나가 될 수도 있고 키가 될 수 있는 여러가지 조합 모두..

DB/SQL - Oracle 2024.02.01

[SQL] 데이터베이스 제약조건 "키" - 기본키, 외래키, 슈퍼키, 후보키, 대체키

키에 대해 이해하려면 먼저 유일성과 최소성이라는 단어를 이해해야 한다. 유일성은 중복값 없이 단 하나만 존재한다는 의미이다. 하나의 키값만으로도 하나의 튜플을 식별할 수 있어야 한다. 예를 들어 아이디 aaa를 찾아보라고 했을 때 딱 하나의 튜플이 나오면 유일성을 만족하고, ​이름이 홍길동인 사람을 찾아보라고 했을 때 여러 튜플이 해당되면 유일성을 만족하지 못한다. 하지만 아이디와 이름을 조합하여 슈퍼키로 만들면 유일성에 해당된다. 아이디가 유일성을 이미 만족하기 때문이다. ​ 최소성은 키의 조합에서 유일성을 만족하기 위해 불필요한 속성이 없어야 한다는 것을 말한다. 키를 조합할 경우 유일성을 만족하지 않은 속성을 포함하고 있다면 최소성에 부합하지 않는다. 예를 들어 회원가입을 할 때 해당 회원의 아이디..

DB/SQL - Oracle 2024.02.01