💡오라클 서버 생성 cmd > ipconfig 콘솔에서 오라클 서버 컴퓨터의 ip를 확인한다. 컴퓨터의 방화벽이 1521번을 막고 있기 때문에 아직 실행이 되지 않는다. 오라클 서버를 사용하고 있는 컴퓨터에서 1521번을 열어주어야 한다. 방화벽 상태확인 Windows Defender 방화벽 > 고급 설정 > 인바운드 규칙 인바운드 규칙에서 '새 규칙'으로 새로운 규칙을 하나 만들어줘야 한다. 포트 선택 > 1521번 포트 허용 > 이름 설정 만약 실행이 되지 않는다면 오라클 서버 컴퓨터에 hr계정이 없기 때문일 수 있다. 연결이 성공하면 Oracle 접속에 접속 이름으로 설정한 team.hr으로 생성된 것을 확인할 수 있다. DBeaver에서 Connect DBeaver에서 연결하려면 Oracle을 선..
💡익명 프로시저 declare -- 선언부 begin -- 구현부 end; declare부터 begin까지 선언부, begin부터 end까지가 구현부이다. serveroutput on set serveroutput on; set serveroutput off; dbms.output이 콘솔로 보이게 하려면 먼저 serveroutput을 반대로 꺼줄 때에는 off 키워드를 사용한다. 익명 프로시저의 사용 DECLARE num number; name varchar2(30); today DATE; BEGIN num := 10; dbms_output.put_line(num); name := 'Isaac'; dbms_output.put_line(name); today := sysdate; dbms_output.pu..
💡예외 처리 예외 처리는 실행부에서(being~end) 발생하는 예외를 처리하는 블록(exception 블록)이다. 예외 발생 --ORA-06502: PL/SQL: numeric or value error: character string buffer too small DECLARE vname varchar2(5); BEGIN dbms_output.put_line('하나'); SELECT name INTO vname FROM tblInsa WHERE num = 1001; dbms_output.put_line('둘'); dbms_output.put_line(vname); END; 위 프로시저는 변수의 길이가 저장하려는 데이터보다 짧아 오류가 발생하고 있다. 절차를 갖게 되었을 때의 에러 발생은 실행 자체에 ..
📌cursor 커서(cursor)는 SQL 결과 집합을 참조하고 조작하는 데 사용되는 데이터베이스 개체이다. 커서를 사용하면 결과 집합의 행을 하나씩 탐색하여 각 행의 데이터에 접근할 수 있다. select into select into는 결과셋의 레코드가 1개일 때만 사용할 수 있다. cursor cursor는 결과셋의 레코드가 다중 레코드일 때 사용한다. 커서를 통해 가져온 데이터를 처리하기 위해 루프를 사용한다. 루프는 커서에서 데이터를 한 행씩 가져와서 처리할 수 있도록 하며, exit when문을 사용하여 루프를 종료한다. cursor의 선언 CURSOR vcursor IS SELECT name FROM tblInsa; cursor를 선언할 때에는 앞에 식별자가 오고, 뒤에 자료형이 온다. 이처..
💡조건문 [Java] 조건문: if문, switch문 제어문은 수많은 명령어들의 흐름(실행 순서)을 통제하는 수단을 의미한다. 제어문의 끝에 문장 종결자(;)를 사용하지 않는다는 특징이 있다. 제어문은 크게 조건문(조건 제어문)과 반복문(반복 isaac-christian.tistory.com PL/SQL 조건문은 Java의 조건문과 비슷한 점이 많다. if문 DECLARE vnum NUMBER := 10; BEGIN IF vnum > 0 THEN dbms_output.put_line('양수'); END IF; END; if else문 DECLARE vnum NUMBER := 10; BEGIN IF vnum > 0 THEN dbms_output.put_line('양수'); ELSE dbms_output.p..
💡PL/SQL PL/SQL의 정식 명칭은 Oracle's Procedural Language extension to SQL이다. PL/SQL은 기존의 ANSI-SQL에 절차 지향 언어 기능을 추가한 것이다. 우리가 쓰는 SQL은 문장 단위의 실행만을 할 수 있었다. 하나의 INSERT와 UPDATE가 위아래에 있다면 우연히 코딩한 위치가 비슷할 뿐, 서로 독립적인 것이었다. PL/SQL은 ANSI-SQL의 확장팩(변수, 제어 흐름(제어문), 객체(메서드) 정의)으로서, 이러한 SQL의 한계를 해소한다. 프로시저 프로시저(Procedure)는 메서드, 함수 등으로 구성된 순서가 있는 명령어의 집합이다. 모든 PL/SLQ 구문은 프로시저 내에서만 작성/동작이 가능하다. 이때 프로시저가 아닌 영역은 ANSI-..
💡정규화 정규화(Nomalization)는 자료의 손실이나 불필요한 정보를 없애고, 데이터의 일관성을 유지하며, 데이터의 종속성을 최소화해 주기 위해 ERD를 수정하는 작업이다. 쉽게 말해 모델링 작업을 하면서 만들어진 ERD를 올바르게 했는지 검증하는 작업이다. 정규화를 하면 ERD의 안정성이 높아지고, 작업하기 편하게 바뀐다. 최종적으로 정규화는 '부분 함수 종속'이나 '이행 함수 종속'을 모두 제거하고, 모든 컬럼의 관계를 '완전 함수 종속'으로 만드는 작업이다. 정규화의 상태 우리가 만든 테이블(ERD)를 비정형 상태 또는 비 정규화 상태라고 말한다. 이를 정규화 과정을 통해 올바르게 수정하고 고치고 나면 정규화 상태라고 한다. 대부분의 개발자들은 만들 때부터 정규화를 하면서 만든다. 정규화의 종..
💡데이터베이스 설계 1. 요구사항 수집 및 분석 2. 개념 데이터 모델링 3. 논리 데이터 모델링 4. 물리 데이터 모델링 5. 데이터베이스 구축(구현) 단계를 거쳐서 내려올수록 추상적인 설계도에 구체적인 내용이 추가된다. 현업에서는 논리 데이터 모델링부터 시작하기도 한다. 데이터 모델링 데이터 모델링은 요구 분석을 기반으로 분석하여 저장 구조를 만들고 도식화하는 작업이다. 도식화를 하면서 나오는 대표적인 산출물은 ERD이 있으며, 데이터 모델링은 최종적으로 ERD(Entity Relationship Diagram)를 만드는 작업이라고 생각하면 된다. 다시 말하면 데이터를 저장하기 위한 데이터 구조를 설계하는 작업이라고 할 수 있다. 개념 / 논리 / 물리 다이어그램 개념 다이어그램 개념 다이어그램은 아..