mysql 학습정리 : 테이블 변경 (rename, alter, drop)
·
CS/MySql 정리
RENAME 테이블 명을 변경할 때 사용 -- rename table show tables; rename table test_table to test_table1; show tables; ALTER 열과 관련된 수정을 할 때 사용 열의 이름을 바꾸거나, 타입을 변경, 추가, 삭제 할 수 있다. -- column TYPE 변경 desc test_table3; alter table test_table3 modify data2 varchar(10000); desc test_table3; -- column 이름&속성 변경 **이름만 바꾸더라도 속성은 그대로 꼭 적어줘야 한다. desc test_table3; alter table test_table3 change data3 data30 float(100, 4);..
5주차. 프로세스 동기화 (2) - Critical Section Problem & Sloving Algorithm
·
CS/운영체제 정리
Critical Section이란? 공유자원 접근 순서에 따라 실행 결과가 달라지는 프로그램의 영역 Critical-Section Problem n개의 프로세스가 공유 데이터를 동시에 접근하려는 경우 프로세스의 code Segment에는 공유 데이터를 접근하는 코드인 Critical-Section이 존재한다. 하나의 프로세스가 Critical Section에 있을 때, 다른 모든 프로세스는 Critical Section에 들어갈 수 없어야 한다. 프로세스의 일반적인 구조 do { entry section; // Critical Section으로 들어감 ~ Critical Section; ~ exit section; // Critical Section에서 나옴 remainder section; } whil..
데이터베이스 개론과 실습 4주차 - 이상현상과 함수종속
·
CS/데이터베이스 정리
이상현상 불필요한 데이터 중복으로 인해 릴레이션에 대한 데이터 삽입, 수정, 삭제 연산을 수행할 때 발생할 수 있는 부작용 정규화 이상현상을 제거하면서 데이터베이스를 올바르게 설계해 나가는 과정 이상현상 종류 삽입이상 : 새 데이터를 삽입하기 위해 불필요한 데이터도 함께 삽입해야 하는 문제 갱신이상 : 중복 투플 중 일부만 변경하여 데이터가 불일치하게 되는 모순의 문제 삭제이상 : 투플을 삭제하면 꼭 필요한 데이터까지 함께 삭제되는 데이터 손실의 문제 예시 {학번, 수업, 가격} 투플을 갖는 수강 테이블이 존재한다고 가정. class Table; 100, c, 10000 101, java, 20000 102, python, 30000 103, c#, 40000 삭제이상 발생 100번 학생이 c 수업을 취..
5주차. 프로세스 동기화 (1) - race condition
·
CS/운영체제 정리
Process Synchronization Process Synchronization 문제 데이터를 읽고 씀에 있어서 특정 주소 공간에서 값을 가져와서 연산 후 다시 저장을 하는 과정에서 프로세스끼리 충돌이 발생할 수 있다. 공유 데이터의 동시 접근은 데이터의 불일치를 발생할 수 있다. 일관성 유지를 위해 협력 프로세스 간의 실행 순서를 정해주는 메커니즘이 필요하다 Race Condition이란? A. 두개 이상의 Thread or Process가 공유자원을 병행적으로 읽거나 쓰는 상황을 말한다. Storage(Memory Address Space)를 공유하는 Execution(CPU Process)이 여러개가 있는 경우 Race Condition의 가능성이 있다. Multi-Processor Syste..
mysql 학습정리 : 트랜잭션 (rollback, commit, savepoint, truncate)
·
CS/MySql 정리
DB 트랜잭션 데이터 처리의 한 단위를 말한다. DB는 데이터를 저장, 수정, 삭제하는 작업을 바로 물리적인 하드디스크에 저장된 데이터에 적용하지 않는다. (메모리단에서 적용됨) 이는 개발자가 실수로 잘못된 명령문을 입력했을 때 다시 원래 상태로 되돌리기 위한 안전 장치이다. 개발자가 Commit을 하기 전까지 입력한 명령문은 메모리에서만 동작하다가 커밋이 발생하면 그때 하드디스크에 반영하게 된다. 데이터에 대한 작업을 하기 위해 입력하는 명령문들의 시작부터 커밋까지가 하나의 트랜잭션이다. 참고) MYSQL Workbench에서 COMMIT, ROLLBAKCK을 테스트하기 위해서 자동 커밋을 꺼준다. ROLLBACK 데이터의 저장, 삭제, 수정 등의 작업을 하고 난 후 원래의 상태로 되돌리는 작업이다. ..
mysql 학습정리 : 데이터 저장, 수정, 삭제 (insert, update, delete)
·
CS/MySql 정리
INSERT 데이터를 로우 단위로 저장할 때 사용한다. insert into TABLE_NAME (col_name, ..) values (값, ..) insert into TABLE_NAME values (값, ..) -- col_name을 미 설정 시 빈 column에는 null값이 들어감. 컬럼에 저장될 값을 지정하지 않으면 null이 저장된다. INSERT 쿼리 예시 -- column명을 생략하여 넣는 경우 컬럼에 순서대로 들어감, 이때는 모든컬럼에 순서대로 값을 넣는 경우. insert into test_table values (1, 'first', 1.0); -- column명을 명시해서 넣는 경우 insert into test_table (data1, data2, data3) values (2..
mysql 학습정리 : CREATE문을 이용하여 DB, TABLE 생성
·
CS/MySql 정리
DB 생성 & 한글 인코딩 설정 DB를 생성하고 한글값을 저장하기 위해서는 인코딩 값을 utf8로 설정해줘야 한다. -- db 생성 & 한글 설정 create database test_db character set = 'utf8' collate = utf8_general_ci; -- db 사용 use test_db; Table 생성 -- table 생성 create table 테이블명 ( 컬럼이름 자료형 제약조건, 컬럼이름 자료형 제약조건 ); -- 예시 create table test_table2( data1 int(10) primary key, data2 varchar(10) not null, data3 float(10, 2) ); 테이블 생성시 type에 올 수 있는 것들 모든 자료형을 확인하고 싶..
mysql 학습정리 : set _ 집합연산
·
CS/MySql 정리
Set 두 select 문을 통해 얻어온 결과를 집합 연산을 통해 하나의 결과로 만드는 것을 set이라고 한다. 합집합, 교집합, 차집합 등 집합 연산을 알 수 있다. 집합 연산을 하기 위해서는 두개의 select문을 통해 가져오는 컬럼이 같아야 한다. 합집합 : UNION (중복없이), UNION ALL (중복 포함해서) 교집합 : JOIN을 통해서 만들어야 한다. 차집합 : 서브쿼리를 통해서 만들어야 한다. 예시 이력에 'Senior Staff' or 'Staff'가 있는 경우를 모두 가져온 경우 select * from titles where title in ('Senior Staff', 'Staff'); 10005번 사원의 경우 두가지 모두 갖고 있음을 알 수 있다. 이러한 중복이 있는 경우에서 ..
mysql 학습정리 : 서브 쿼리
·
CS/MySql 정리
서브쿼리 쿼리문 내에 쿼리문이 있는 것을 서브 쿼리라고 한다. 조건문 등을 만들 때 값을 직접 지정하지 못하고 쿼리문을 통해 구해 와야할 경우 서브쿼리를 통해 값을 구해서 조건문을 완성할 수 있다. EX. 급여액의 평균이상의 사원을 가져온다고 하면 평균을 구해야 쿼리문을 짤수가 있다. 서버쿼리를 짤때 당황하지말고 일단 서브쿼리로 만들어야 할 부분, 즉 알 수 없는 조건값을 배제하고 먼저 일반 쿼리문을 짠다. 이 후 해당 조건값에 대한 부분을 가져오기 위한 쿼리문을 짜고 두 쿼리문을 합쳐서 하나로 만든다. 현재받는 급여의 평균보다 많이 받는 사원들의 사원번호, 급여액을 가져온다. -- 현재받는 급여의 평균보다 많이 받는 사원들의 사원번호, 급여액을 가져온다. select emp_no, salary from..
mysql 학습정리 : Join (카티전 프로덕트, 동등조인)
·
CS/MySql 정리
조인 세타조인 : 비교연산자를 가지는 조인 (=, !=, , =) 동등조인 : = 연산자를 사용하는 조인 자연조인 : 동등조인을 진행하는데 중복되는 모든 컬럼은 제거하여 보여준다. 외부조인 : 매칭되는 값이 없어도 NULL을 넣어서 반환한다. (왼쪽, 완전, 오른쪽 3가지 경우가 존재) 세미조인 : 자연조인을 진행한 결과에 대해서 한쪽 테이블만 반환한다. (EX. 주문내역이 있는 고객만 조회) 참고 where절에서 공통 속성에 대해 조건을 달아주지 않으면 다대다 조인이 된다. 즉 카티전 프로덕트가 되는것. 동등조건을 달아주어야 동등조인이 된다. 조인을 할 때는 테이블의 이름을 {,} 로 구분하여 작성하고, 가져올 컬럼명을 적어주면 원하는 데이터를 가져올 수 있다. EQUI JOIN _ 동등조인 동등조인 ..