본문 바로가기

프로그래밍32

컴알못의 데이터베이스 공부 (정규화) 정규화 필요성 데이터베이스의 하나의 통합된 스키마를 설계하는 것을 데이터베이스 설계라고 합니다. 정규화는 올바른 스키마를 정의하기 위한 방법입니다. 잘못된 데이터베이스를 설계하면 이상현상이라는 부작용이 발생할 수 있습니다. 이상현상이란 대부분 데이터 중복으로 발생하는 데이터베이스 오류입니다. 여러 종류의 이상현상이 존재합니다. 삽입 이상 : 데이터를 삽입하기 위해 불필요한 데이터를 입력하는 경우를 말합니다. 기본키에 대한 정의를 잘못해서, 기본키에 대한 정보가 없는 상황에 데이터를 추가하기 위해 NULL값이 허용되지 않는 기본키에 아무런 정보나 마구 써넣는 경우도 여기에 해당됩니다. 갱신 이상 : 데이터를 갱신했는데 중복된 데이터가 많아서 데이터의 일부만 갱신되고 일관성이 깨지는 현상을 말합니다. 예를 .. 2022. 1. 7.
컴알못의 SQL 공부 (트랜잭션) 트랜잭션 개요 관련된 SQL 문장들을 한데 묶어서 하나의 처리 단위로 다루는 것. 데이터베이스의 작업은 하나의 작업도 여러 SQL명령문으로 이루어진 경우가 많기 때문에 필요합니다. 트랜잭션이란 한묶음으로 처리되어야 하는 SQL 명령문들의 집합. 즉, 트랜잭션 안의 SQL 명령문들은 전부 정상처리 되어야 하나의 트랜잭션이 완료되는 것입니다. 트랜잭션이 정상 종료되었다면 커밋. 트랜잭션이 실패하면 롤백. 정확히 말하면 커밋은 SQL 명령문들을 전부 정상 수행해 실행 결과를 성공적으로 반영하는 것. 롤백은 SQL 명령문 수행 도중 오류가 발생하여 명령문 실행 전 상태로 되돌리는 것을 말합니다. 목적 데이터베이스 서버에 다수의 클라이언트의 동시 접근성을 제어하고, 장애 발생시에 안정적으로 데이터를 복구하여 데이.. 2022. 1. 7.
컴알못의 SQL 공부 (내장함수, 프로시저, 트리거, 사용자정의함수) 내장 함수 개념 다양한 사용자의 질의 요청을 처리하기 위해 MySQL이 SQL문 안에 제공하는 함수. SQL 함수는 DBMS가 제공하는 내장 함수와 사용자가 직접 정의하는 사용자 정의 함수로 나뉘어집니다. 종류 숫자함수 ABS(A) A의 절대값 CEIL(A) A의 반올림 FLOOR(A) A의 반내림 ROUND(A, B) A를 소수점 B자리값까지 반올림 FORMAT(A, B) A를 B형식으로 변환 문자함수 LENGTH(A) A 문자열의 길이 CONCAT(A) A 문자열 그룹들을 결합 LEFT/RIGHT(A, B) A문자열을 왼/오른쪽 B 길이만큼 자름 LTRIM/RTRIM(A) 왼,오른쪽 공백을 제거 SUBSTRING(A, B, C) A의 B번째부터 C길이만큼 자름 REPLACE(A, B, C) A의 B를.. 2022. 1. 6.
컴알못의 SQL 공부 (DDL, DCL) 목차 저번에는 DML에 대해서 알아보았습니다. DML은 SQL의 기초라고 불리는데 그 이유는 가장 보편적으로 주어지는 권한이며, 데이터베이스에 조금이라도 맞닿아있는 사람이라면 누구나 사용할 수 있어야하기 때문이에요. 오늘은 DDL(Data Definition Language)에 대해서 알아보도록 합시다. 데이터 정의어는 단순히 DML처럼 데이터를 조작하는게 아니라 데이터베이스의 구조나 설정들을 정의하는데 사용합니다. 데이터베이스를 만들거나, 없애거나, 제약조건을 정의하거나 이런 기능들을 말하는거겠네요. DDL CREATE문 CREATE문은 테이블을 생성할 때 사용합니다. 데이터베이스가 다루는 가장 중요한 객체는 테이블입니다. 당연하죠. 관계형 데이터베이스는 데이터모델로 테이블 형식을 차용했으니까요. (사.. 2022. 1. 5.