반응형
반응형
학교를 다니며 과제로 지겹게 했던 ERD... 나는 이걸 컴공생들만 주구장창 하고 나오는줄 알았는데 알바를 하며 알게된 언니가 국비생들도 이걸 무조건 그리게 시킨다고 말했다. 그래서 서로 신기해했다.ㅋㅋ(사실 DB를 배우면 누구나 하는거일텐데도 그냥 알바가 빡세서 무슨 이야기든 재밌었던것 같기도 하고...) 언니는 개발자로 벌써 일을 하고 있는데 난 아직도 디자인의 길을 벗어나지 못했다니.. 내년엔 얼렁 들어가기로ㅠ 개체-관계 다이어그램(Entity-Relationship Diagram) ERD는 데이터 모델을 그림으로 표현한 것이다. 실제 DB를 프로그램에 만들기 전인 설계 단계에서 거치는 과정으로 각 테이블과 테이블의 관계를 그림으로 나타내 그린다. 처음 만든 보일러 플레이트가 너무 형편없었기 때문에..
Trigger Trigger(트리거)는 테이블 내 데이터가 변동되는 작업인 INSERT, UPDATE, DELETE가 실행될 때 자동으로 함께 실행되는 코드를 의미한다. 실습을 위해 trigger_mart라는 새로운 DB를 셍성하고, school과 student라는 테이블을 추가해 주었다. school은 반이름과 공석이 저장되며 기본값으로 20이라는 공석의 값을 주었다. 학생은 auto_increment를 활용해 학생이 한 명 추가될 때마다 학생 번호가 1씩 늘어난다. CREATE TABLE trigger_mart.school( 반이름 varchar(100) 공석 int DEFAULT 20 ); CREATE TABLE trigger_mart.student( 학생이름 varchar(100), 학생번호 in..
Transaction Transaction(트랜잭션) 이란, 데이터베이스의 상태를 바꾸기 위해 수행하는 작업의 단위를 뜻한다. 따라서 쿼리 명령어들은 각각 하나의 트랜잭션이라고 할 수 있다. 트랜잭션 문법은 DB의 내용을 직접적으로 수정하는 여러 쿼리문을 실행할 때, 최소 하나라도 에러가 발생하는 경우 전체 쿼리문을 취소할 수 있도록 도와준다. 문법과 수행 로직은 아래와 같다. START TRANSACTION; -- 트랜잭션(한개의 작업)을 시작한다. 쿼리 내용 COMMIT; -- 문제가 없을 경우에만 모든 코드를 실행한다. ROLLBACK; -- 만일 에러가 발생하면 트랜잭션을 실행하기 전 상태로 되돌린다. 1. START TRANSACTION을 만나면 트랜잭션(한개의 작업)을 시작한다. 2. 쿼리 내..
INDEX 인덱스는 검색의 효율성을 증대시키기 위해 사용한다. PK(Primary Key)는 자동으로 index가 생성되어 있기 때문에 PK 컬럼은 인덱스를 따로 만들어 줄 필요가 없다. 따라서 인덱스는 기본키가 아닌 일반 컬럼들의 탐색 속도를 위해 존재한다. 그러나 index는 생성 시마다 하드의 용량을 차지하게 되기 때문에, 너무 많이 만들 경우에는 오히려 성능이 떨어질 수 있다. 예시로 사용한 csv 파일은 이곳에서 다운받는다. : https://www.data.go.kr/data/15053384/fileData.do 대전광역시_유성구_구즉도서관도서목록_20221027 대전광역시 유성구 구즉도서관에서 보유하고 있는 도서목록 정보(소장처, 자료실, 등록번호, 설명, 저자, 출판사, 출판년, 청구기호 ..
FUNCTION SQL에는 프로시저와 비슷한 기능으로 FUNCTION이라는 것이 존재한다. 직역하면 '함수'라는 뜻인데, js에서의 function과 같은 역할을 한다. 프로시저가 자주 사용되는 쿼리문을 작성하는 함수라면, Function은 자주 사용되는 계산식을 작성해 재사용하는 함수이다. Function은 프로시저와 다르게 CALL 없이 함수이름(파라미터);로 호출하여 바로 사용할 수 있다. RETURN문을 사용해 반환할 값을 지정해 줄 수 있으며, 이때 RETURN 할 값의 타입을 RETURNS 옆에 기재해 주어야 한다. Function을 작성할 때 필요한 데이터 특성 옵션으로는 DETERMINISTIC, NO SQL, READS SQL DATA, MODIFIES SQL DATA 이 있는데 공식 문..