2021.11.16(화)
과목1: 데이터베이스 구현 | 과목2: SQL 활용 | |
서술형 | - 테이블 - 데이터베이스 관리자 계정 - connect role - 데이터 딕셔너리 |
- 집합연산자 - 제약조건 - 트랜잭션 및 TCL |
문제 해결 시나리오 | - 테이블 생성 시 알맞은 자료형 지정 - 제약조건(not null, foreign key 등) 활용 |
- 테이블 행 추가 - DCL 활용 |
📗 소감
- 개인적으로 범위를 다 소화하지 못하고 시험을 봐서 아쉬웠다
- 다음 과목은 매일 복습과 주말 공부 더 열심히 해서 + 수업 내용 이외 실습도 개인적으로 더 하면서 하루하루를 보내야겠다. 파이팅!
📗 homework
1. Java API
public class DoubleArithmetic {
public static void main(String[] args) {
System.out.println("[double형으로 표현된 실수의 사칙연산]");
double num1 = 13.44;
double num2 = 2.44;
System.out.println("첫번째 실수 = " + num1); // 13.44
System.out.println("두번째 실수 = " + num2); // 2.44
System.out.println("덧셈 : " + (num1 + num2)); // 15.879999999999999
System.out.println("뺄셈 : " + (num1 - num2)); // 11.0
System.out.println("곱셈 : " + (num1 * num2)); // 32.7936
System.out.println("나눗셈 : " + (num1 / num2)); // 5.508196721311475
System.out.println("나머지 : " + (num1 % num2)); // 1.2399999999999998
System.out.println();
System.out.println("[BigDecimal 클래스를 이용한 실수의 사칙연산]");
// java.math.BigDecimal 클래스를 이용 -> 정수를 이용해서 실수를 표현 -> 실수형 자료형의 정밀도, 오차 등을 보완할 수 있음
// BigDecimal의 생성: 일반적으로 문자열로 숫자를 표현함
BigDecimal bd1 = new BigDecimal("14.578");
BigDecimal bd2 = new BigDecimal("2.8937");
System.out.println("첫번째 실수 = " + bd1.setScale(4)); // bd2와 소수점 아래 자리 맞춰서 표시하기 위해 scale 변경함
System.out.println("두번째 실수 = " + bd2);
// double형 값을 매개변수로 갖는 생성자를 사용하면 오차가 발생할 수 있으므로 주의하기
// 사칙연산
System.out.println("덧셈 : " + bd1.add(bd2)); // 17.4717
System.out.println("뺄셈 : " + bd1.subtract(bd2)); // 11.6843
System.out.println("곱셈 : " + bd1.multiply(bd2)); // 42.1843586
System.out.println("나눗셈 : " + bd1.divide(bd2, 10, RoundingMode.HALF_UP)); // 5.0378408266; bd1(분자, numerator)을 bd2(분모, denominator, divisor)로 나눈 결과를 소수점 아래 10자리까지 표시하되, 반올림 시 5 이상은 올림, 5 미만은 버림으로 처리; Windows 계산기 결과 = 5.037840826623354
// 나눗셈한 결과가 무한소수인 경우 반올림 모드를 지정해주어야 함; otherwise "ArithmeticException: Non-terminating decimal expansion; no exact representable decimal result"
// BigDecimal이 오차없이 실수를 저장하기 위한 자료형이지만, 나눗셈에서 발생하는 오차는 어쩔 수 없음
System.out.println("나머지 : " + bd1.remainder(bd2)); // 0.1095
System.out.println("나머지 : " + bd1.remainder(bd2, MathContext.DECIMAL128)); // 0.1095
/* 2021.11.16(화) 숙제 소감
* 풀이 과정: 숙제를 하기 전 '자바의 정석' 책을 뒤적이다 우연히 BigDecimal 부분을 보게 되어 문제를 해결할 수 있었는데, 다음부터 새로운 것을 배워야 할 때는 좀 더 적극적으로, 그리고 정확한 키워드로, 구글링해서 찾아내야겠다는 다짐을 하게 되었습니다.
* 풀이 결과: 14.578 및 2.8937 double형 실수의 덧셈, 뺄셈, 나눗셈 결과가 정상적으로(?) 나온 것 같은데, 왜 그런 것인지 궁금해졌습니다..
*
* 보완할 점: 사용자로부터 실수값 입력받아 연산하는 계산기 형태로 만들어보기
* 추가로 공부할 것: BigInteger, MathContext, DecimalFormat, 실수의 나머지/모듈로 연산
*/
}
}
2. 객체배열 실습 과제
(실습 파일 위치: 00 Exercises > src > com > kh > hw > member)
'back-end dev > database' 카테고리의 다른 글
[knou] 데이터베이스 모델링 (0) | 2022.07.20 |
---|---|
[KH정보교육원] 62일차_DB 모델링, ERD (0) | 2022.01.05 |
[KH정보교육원] 24일차_SEQUENCE, DBMS 정리 (0) | 2021.11.13 |
[KH정보교육원] 23일차_DCL, TCL, VIEW (0) | 2021.11.11 |
[KH정보교육원] 22일차_DML(INSERT, UPDATE, DELETE), DDL(ALTER, DROP) (0) | 2021.11.11 |