본문 바로가기

CS/Database9

[데이터베이스] 트랜잭션 고립 수준 쓰기와 쓰기가 동시에 작업하는 것이 불가능 읽기와 읽기는 동시에 언제든 가능 문제 부분은 쓰기 트랜잭션과 읽기 트랜잭션이 동시에 일어날 때 하나의 트랜잭션은 발생 시점부터 데이터 일관성을 가져야 한다. Read uncommited - 오손 읽기(Dirty read) commit되지않은 데이터를 읽는 문제 Read commited - 반복 불가능 읽기(Non repeatable read) update -> commit된 데이터를 읽어, 데이터 일관성이 깨진다. Repeatable read - 유령 데이터 읽기(Phantom read) 트랜잭션 시작 전 commit 된 데이터만 undo영역을 이용하여 읽는다. 일관성이 깨지지 않는다. insert -> commit 된 데이터를 읽어, 데이터를 추가로 읽어 데.. 2022. 8. 23.
[Mysql] rownum 활용 Mysql은 Oracle과는 다르게 rownum을 지원하지 않아서 커스텀으로 만들어서 사용해줘야 한다. 함수를 사용하여 rownum을 지정해줄 수도 있다. 커스텀 rownum 함수 row_number() 커스텀 rownum select @rownum:= @rownum + 1 as rownum, t.* from table1 t, (select @rownum := 0) r; select rt.* from ( select @rownum:= @rownum +1 as rownum, t.* from table1 as t, (select @rownum := 0) as r ) as rt where rt.rownum between 2 and 4; select rt.* from ( select @rownum:= @rown.. 2022. 7. 20.
[데이터베이스] 무결성 제약 조건 도메인 무결성 제약조건 각 속성의 도메인에 지정된 값만을 가져야 한다는 조건이다. ex) 주문 일자 속성 -> 날짜 값만을 가져야 함 개체 무결성 제약조건 기본키는 NULL이면 안되며, 유일해야 한다. 참조 무결성 제약조건 부모 릴레이션에서 튜플을 삭제할 경우 RESTRICTED : 자식에서 참조하고 있다면 삭제를 거부 CASCADE : 자식의 튜플까지 삭제 DEFAULT : 자식의 외래 키 값을 DEFAULT 값으로 변경 NULL : 자식의 외래키 값을 NULL로 변경 2022. 6. 15.
[데이터 베이스] 제 4 정규형, 제 5 정규형 제4 정규형 1 대 N 다치 종속의 제거이다. 하나의 결정자가 다른 속성에서 여러 종속자를 결정할 때 다치 종속한다고 한다. 한 릴레이션에서 1 대 N으로 관계가 나타나도 되지만, 문제가 되는 부분은 1 : N, 1: N 두 개 이상으로 다치 종속이 구성되어있을 때 이상현상이 발생하므로 중심이 되는 속성을 기준으로 릴레이션을 분리해주어야 한다. 이름 과목 동아리 홍길동 데이터베이스 농구 홍길동 보안 축구 홍길동 데이터베이스 야구 해당 테이블에서 과목을 추가하게 되면, 동아리도 추가를 해줘야 하는 문제가 발생한다. 그러므로 이름, 과목 / 이름, 동아리로 분리해줘야 한다. 제 5 정규형 조인 종속성이 존재하면 제5 정규형 대상이다. 조인 종속성이란 마치 조인을 한 것과 같은 릴레이션의 중복을 제거해주는 것.. 2022. 6. 13.
[Database] MYSQL SQL 총정리 문자열 함수 문자열 함수에서 인자가 여러 개일 때 적용대상 @column 위치는 거의 맨 앞이다. concat select concat(@column, " ", @column) from books; concat_ws select concat("구분자", @column, @column) from books; substr substring substring(@column, start, end) 앞 ~ 뒤 [모두 포함] substring(@column, start) 앞부터 count substring(@column, -start) 뒤부터 count replace replace(@column, "바뀌기 전 문자", "바뀐 후 문자") reverse reverse(@column) char_length char_l.. 2022. 5. 3.
[MYSQL] 각종 도구 사용 명령어 [GOORM.IDE] 경로이동 : cd node_modules/mysql/sqls mysql 실행 : mysql sql file 실행 : source 파일명.sql 오류: Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' 명령어 : sudo service mysql restart [WORK BENCH] reverse engineer / table -> erd forward engineer / erd -> table 2022. 5. 3.